"Claude Code '400: no low surrogate in string' on every turn: repairing a permanently broken session transcript"
A Claude Code session that returns API Error: 400 ... not valid JSON: no low surrogate in string on every turn is poisoned by a lone UTF-16 surrogate (a code point in U+D800–U+DFFF) baked into its on-