Unexpected end while parsing Unicode escape sequence. Path 'a', line L, position N.
This message comes from Newtonsoft.Json JsonConvert on Newtonsoft.Json 13.0.3 on .NET 8.0.30. In this registry it is produced by 1 distinct mistake. Positions in the real message vary with your input; the causes do not.
Causes
What produces this message
Truncated \u escape in a JSON string
Input
{"a": "\u12"}Exact message: Unexpected end while parsing Unicode escape sequence. Path 'a', line 1, position 9.
Fix: Pad to four digits: `\u0012`, not `\u12`.
Same bug, other languages
What other parsers say about the same input
If a colleague reports a different message for what looks like the same file, this is why.
| Parser | Message for the same inputs |
|---|---|
| CPython json.loads | Invalid \uXXXX escape: line L column C (char N) |
| Gson | \u12"} |
| Gson JsonParser (lenient off) | java.lang.NumberFormatException: \u12"} |
| JSON5 | JSON5: invalid character '\"' at 1:12 |
| JSON::PP | unexpected end of string while parsing JSON string, at character offset N (before "…") |
| Jackson ObjectMapper | Unexpected character ('"' (code 34)): expected a hex-digit for character escape sequence |
| JavaScriptCore JSON.parse | JSON Parse error: "\u12"}" is not a valid unicode escape |
| Newtonsoft.Json JsonTextReader | Unexpected end while parsing Unicode escape sequence. Path 'a', line L, position N. |
| Ruby JSON.parse | unexpected token at '…' |
| SpiderMonkey JSON.parse | JSON.parse: bad Unicode escape at line L column C of the JSON data |
| System.Text.Json Deserialize | '"' is not a hex digit following '\u' within a JSON string. The string should be correctly escaped. Path: $ | LineNumber: L | BytePositionInLine: C. |
| System.Text.Json JsonDocument | '"' is not a hex digit following '\u' within a JSON string. The string should be correctly escaped. LineNumber: L | BytePositionInLine: C. |
| V8 JSON.parse | Bad Unicode escape in JSON at position N (line L column C) |
| encoding/json Unmarshal | invalid character '"' in \u hexadecimal character escape |
| hjson | Bad \u char " at line L,11 |
| json-bigint | Bad string |
| json_decode | Syntax error |
| orjson | invalid escaped sequence in string: line L column C (char N) |
| serde_json::from_str | invalid escape at line L column C |
| ujson | Unexpected character in unicode escape sequence when decoding 'string' |
Sources
Standards this registry is checked against
- RFC 8259 (STD 90) — The JavaScript Object Notation (JSON) Data Interchange Format, T. Bray, Ed., 2017. The IETF Internet Standard for JSON. Obsoletes RFC 7159 and RFC 4627.
- ECMA-404, 2nd edition — The JSON Data Interchange Syntax, Ecma International, 2017. Ecma’s grammar for JSON. A normative reference of RFC 8259; the two define the same syntax.
- The Unicode Standard — The Unicode Standard, Core Specification, The Unicode Consortium, current. Normatively referenced by RFC 8259 for the definition of a character.
- IEEE 754-2019 — IEEE Standard for Floating-Point Arithmetic, IEEE, 2019. Referenced by RFC 8259 §6 as the basis for its interoperability guidance on numbers.
Only standards bodies and peer-reviewed venues are cited. Error strings on this site are observed by executing each parser; the standards above define what the parser is reacting to.