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 / missing low surrogate character in surrogate pair,
JSON::PP · Perl 5.038002

missing low surrogate character in surrogate pair, at character offset N (before "…")

This message comes from JSON::PP on Perl 5.038002. 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: missing low surrogate character in surrogate pair, at character offset 15 (before "(end of string)")

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
Ruby JSON.parseincomplete surrogate pair at '…'
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.