Formatter Validator Minifier Escape / Unescape JSON ↔ String JSON ↔ YAML JSON → CSV NDJSON / JSON Lines JSON → Types JSON ↔ XML JSON Diff JSON Patch Canonicalize (RFC 8785) Schema Validator Schema Generator JSONPath Tester JWT Decoder JSON Errors Schemas More Tools
JSONTools / JSON errors / incomplete surrogate pair at '…'
Ruby JSON.parse · Ruby 3.2.3

incomplete surrogate pair at '…'

This message comes from Ruby JSON.parse on Ruby 3.2.3. In this registry it is produced by 1 distinct mistake. Positions in the real message vary with your input; the causes do not.

What produces this message

Lone surrogate in a JSON string

Input
{"a": "\uD800"}

Exact message: incomplete surrogate pair at '\uD800"}'

Fix: Never slice strings on UTF-16 boundaries. Slice by code point, or by grapheme cluster if you care about emoji sequences.

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
JSON::PPmissing low surrogate character in surrogate pair, at character offset N (before "…")
json_decodeSingle unpaired UTF-16 surrogate in unicode escape
orjsonno low surrogate in string: line L column C (char N)
serde_json::from_strunexpected end of hex escape at line L column C

← All JSON parser errors

Standards this registry is checked against

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.