zsh's built-in echo interprets \n escape sequences in JSON strings, converting properly-escaped \\n back into literal newlines. This breaks jq parsing with "control characters U+0000 through U+001F must be escaped". printf '%s\n' preserves the JSON verbatim. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>