You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
SDK throws 'Unexpected end of JSON input' on empty response bodies #7889
The SDK crashes with SyntaxError: Unexpected end of JSON input when the server returns an empty response body without proper Content-Length: 0 header or 204 status code.
Steps to Reproduce
Make an API call that returns an empty body with status 200
SDK attempts to parse the empty body as JSON
Crashes at client.gen.ts:167
Error Message
SyntaxError: Unexpected end of JSON input
at json (unknown)
at <anonymous> (../sdk/js/src/v2/gen/client/client.gen.ts:167:33)
Expected Behavior
Empty responses should be handled gracefully (return {})
Malformed JSON should provide actionable error messages with status code and URL
Root Cause
Client-side: SDK only checks for status === 204 or Content-Length === "0" before attempting JSON parse. Empty body with 200 status and no Content-Length header falls through to response.json() which throws.
Server-side: OPTIONS handler in /packages/console/app/src/routes/zen/v1/models.ts returns status: 200 with null body instead of status: 204.
Proposed Fix
Read response as text first, only parse if non-empty
Add try-catch with contextual error messages for malformed JSON
Fix server to return proper 204 status for empty responses
Affected Model: Zen GLM-4.7 Reproduced: 2 times Rate limit error before crash:
High concurrency usage of this API, please reduce concurrency or contact customer... retrying in 17s attempt #5 Additional context: The JSON parsing error occurred after seeing rate limiting messages. May be related to truncated/retry responses under load.
Activity
github-actions commentedon Jan 12, 2026
This issue might be a duplicate of existing issues. Please check:
Feel free to ignore if none of these address your specific case.
jimgrubb commentedon Jan 12, 2026
Affected Model: Zen GLM-4.7
Reproduced: 2 times
Rate limit error before crash:
High concurrency usage of this API, please reduce concurrency or contact customer... retrying in 17s attempt #5
Additional context: The JSON parsing error occurred after seeing rate limiting messages. May be related to truncated/retry responses under load.
dhruvkej9 commentedon Jan 12, 2026
@thdxr any easy temp. way to fix it ??
Have to restart opencode mid-session due to this.
chore(sdk): update @hey-api/openapi-ts to 0.90.4