Randomly failed because of JSON::ParserError : 822: unexpected token












0














I have a REST POST API that receives json data and validates parameters. In the production environment, the API sometimes raises an exception:



JSON::ParserError : 822: unexpected token at ...


The stack trace is like:



> .../gems/ruby-2.2.10/gems/json-1.8.6/lib/json/common.rb:155:in `parse'
> .../gems/ruby-2.2.10/gems/json-1.8.6/lib/json/common.rb:155:in `parse'
> .../gems/ruby-2.2.10/gems/activesupport-4.2.10/lib/active_support/json/decoding.rb:26:in `decode'


It seems that the error occurs randomly; I cannot find any pattern.



When I try the same code with the dumped data, there is no parsing error.



I thought the error is due to running in concurrent, but I tried it in local with 1000 concurrent requests, which are far more than in the production environment, and it still works without any error.



I appreciate to throw some light.



What does the 822 mean in the error message? It does not seem to be the character position in the json data.










share|improve this question




















  • 1




    JSON::ParserError : 822: unexpected token means there was a request sent to the server that did not include valid JSON. Are you sure that your log includes the sent data? I guess - because Rails raises that error before even calling the controller - that you will not be able to see the data that was to the application in your log file.
    – spickermann
    Nov 21 '18 at 7:09










  • The input actually is a zipped data, so it is logged in the error handling.
    – JohnZhang
    Nov 21 '18 at 7:45










  • Can you add the code that unzips and converts to JSON?
    – anothermh
    Nov 21 '18 at 9:03
















0














I have a REST POST API that receives json data and validates parameters. In the production environment, the API sometimes raises an exception:



JSON::ParserError : 822: unexpected token at ...


The stack trace is like:



> .../gems/ruby-2.2.10/gems/json-1.8.6/lib/json/common.rb:155:in `parse'
> .../gems/ruby-2.2.10/gems/json-1.8.6/lib/json/common.rb:155:in `parse'
> .../gems/ruby-2.2.10/gems/activesupport-4.2.10/lib/active_support/json/decoding.rb:26:in `decode'


It seems that the error occurs randomly; I cannot find any pattern.



When I try the same code with the dumped data, there is no parsing error.



I thought the error is due to running in concurrent, but I tried it in local with 1000 concurrent requests, which are far more than in the production environment, and it still works without any error.



I appreciate to throw some light.



What does the 822 mean in the error message? It does not seem to be the character position in the json data.










share|improve this question




















  • 1




    JSON::ParserError : 822: unexpected token means there was a request sent to the server that did not include valid JSON. Are you sure that your log includes the sent data? I guess - because Rails raises that error before even calling the controller - that you will not be able to see the data that was to the application in your log file.
    – spickermann
    Nov 21 '18 at 7:09










  • The input actually is a zipped data, so it is logged in the error handling.
    – JohnZhang
    Nov 21 '18 at 7:45










  • Can you add the code that unzips and converts to JSON?
    – anothermh
    Nov 21 '18 at 9:03














0












0








0







I have a REST POST API that receives json data and validates parameters. In the production environment, the API sometimes raises an exception:



JSON::ParserError : 822: unexpected token at ...


The stack trace is like:



> .../gems/ruby-2.2.10/gems/json-1.8.6/lib/json/common.rb:155:in `parse'
> .../gems/ruby-2.2.10/gems/json-1.8.6/lib/json/common.rb:155:in `parse'
> .../gems/ruby-2.2.10/gems/activesupport-4.2.10/lib/active_support/json/decoding.rb:26:in `decode'


It seems that the error occurs randomly; I cannot find any pattern.



When I try the same code with the dumped data, there is no parsing error.



I thought the error is due to running in concurrent, but I tried it in local with 1000 concurrent requests, which are far more than in the production environment, and it still works without any error.



I appreciate to throw some light.



What does the 822 mean in the error message? It does not seem to be the character position in the json data.










share|improve this question















I have a REST POST API that receives json data and validates parameters. In the production environment, the API sometimes raises an exception:



JSON::ParserError : 822: unexpected token at ...


The stack trace is like:



> .../gems/ruby-2.2.10/gems/json-1.8.6/lib/json/common.rb:155:in `parse'
> .../gems/ruby-2.2.10/gems/json-1.8.6/lib/json/common.rb:155:in `parse'
> .../gems/ruby-2.2.10/gems/activesupport-4.2.10/lib/active_support/json/decoding.rb:26:in `decode'


It seems that the error occurs randomly; I cannot find any pattern.



When I try the same code with the dumped data, there is no parsing error.



I thought the error is due to running in concurrent, but I tried it in local with 1000 concurrent requests, which are far more than in the production environment, and it still works without any error.



I appreciate to throw some light.



What does the 822 mean in the error message? It does not seem to be the character position in the json data.







json ruby






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 21 '18 at 7:09









sawa

130k29200300




130k29200300










asked Nov 21 '18 at 6:58









JohnZhangJohnZhang

3718




3718








  • 1




    JSON::ParserError : 822: unexpected token means there was a request sent to the server that did not include valid JSON. Are you sure that your log includes the sent data? I guess - because Rails raises that error before even calling the controller - that you will not be able to see the data that was to the application in your log file.
    – spickermann
    Nov 21 '18 at 7:09










  • The input actually is a zipped data, so it is logged in the error handling.
    – JohnZhang
    Nov 21 '18 at 7:45










  • Can you add the code that unzips and converts to JSON?
    – anothermh
    Nov 21 '18 at 9:03














  • 1




    JSON::ParserError : 822: unexpected token means there was a request sent to the server that did not include valid JSON. Are you sure that your log includes the sent data? I guess - because Rails raises that error before even calling the controller - that you will not be able to see the data that was to the application in your log file.
    – spickermann
    Nov 21 '18 at 7:09










  • The input actually is a zipped data, so it is logged in the error handling.
    – JohnZhang
    Nov 21 '18 at 7:45










  • Can you add the code that unzips and converts to JSON?
    – anothermh
    Nov 21 '18 at 9:03








1




1




JSON::ParserError : 822: unexpected token means there was a request sent to the server that did not include valid JSON. Are you sure that your log includes the sent data? I guess - because Rails raises that error before even calling the controller - that you will not be able to see the data that was to the application in your log file.
– spickermann
Nov 21 '18 at 7:09




JSON::ParserError : 822: unexpected token means there was a request sent to the server that did not include valid JSON. Are you sure that your log includes the sent data? I guess - because Rails raises that error before even calling the controller - that you will not be able to see the data that was to the application in your log file.
– spickermann
Nov 21 '18 at 7:09












The input actually is a zipped data, so it is logged in the error handling.
– JohnZhang
Nov 21 '18 at 7:45




The input actually is a zipped data, so it is logged in the error handling.
– JohnZhang
Nov 21 '18 at 7:45












Can you add the code that unzips and converts to JSON?
– anothermh
Nov 21 '18 at 9:03




Can you add the code that unzips and converts to JSON?
– anothermh
Nov 21 '18 at 9:03












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53406763%2frandomly-failed-because-of-jsonparsererror-822-unexpected-token%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53406763%2frandomly-failed-because-of-jsonparsererror-822-unexpected-token%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Create new schema in PostgreSQL using DBeaver

Deepest pit of an array with Javascript: test on Codility

Costa Masnaga