{"version":"2.1.234","anchor":"empty-or-malformed-api-responses-now-report-what-actually-an","canonical_anchor":"empty-or-malformed-api-responses-now-report-what-actually-an","heading":"Empty or malformed API responses now report what actually answered","tier":"notice","area":"API Errors","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.234\/e\/empty-or-malformed-api-responses-now-report-what-actually-an","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.234","markdown":"### Empty or malformed API responses now report what actually answered\n\nA junk API response now names what actually answered and suggests checking for a proxy or gateway.\n\n**What**\n\nWhen the API returns something that is not a message, the error now fingerprints the responder instead of failing bare, and suggests checking for a proxy or gateway intercepting the request. Two new structured log events, `cli_api_error` and `cli_api_retry`, carry the same detail. This is aimed at corporate gateways sitting in front of the API.\n\n**Details**\n\n- The fingerprint records content-type bucket, body kind (event stream, HTML, XML, JSON served under the wrong content type, and so on), byte size, and whether the request id looks Anthropic-issued.\n- A server-header classifier covers roughly 20 intermediaries including cloudflare, envoy, zscaler, squid, haproxy, netskope, bluecoat and big-ip, plus Apigee fault source and code taxonomies and the set of intermediary headers seen.\n- The log events include a `route` block: provider, whether the base URL is the default, an Anthropic one or custom, and whether an https proxy, custom headers, extra CA certificates or a client certificate are in use.\n- No flag guards this; it sits on the normal API error paths.\n\n**Evidence**\n\n`check for a proxy or gateway intercepting the request.`\n\n- Area: API Errors\n- Tier: You'll notice\n- Useful: 4\/5\n- Signal: 3\/5"}