Randomly failed because of JSON::ParserError : 822: unexpected token
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
add a comment |
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
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
add a comment |
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
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
json ruby
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
add a comment |
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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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