browser_snapshot (and potentially other tools returning page content) can return text containing lone Unicode surrogates from DOM textContent. These are valid in JavaScript strings but invalid in JSON ...