| API Key invalid / 401 | Base URL and KEY do not match, or the KEY is mistyped | Invalid API Key · Base URL config |
| Error message unclear, no idea where to start | Work through the error types in order | Troubleshoot model API errors |
| Balance remaining but requests fail | Pre-deduction mechanism, or max_tokens set too high | Balance insufficient · Pre-deduction |
| Request times out or drops mid-stream | Client timeout too short; reasoning models are slow | Avoiding API timeouts |
| Log shows success and billing, but nothing reached the client | The log duration stops when the gateway finishes; the gap is downstream or in the finish signal | Log finished but no response |
| Website / API returns 502 | Service container briefly auto-restarting; recovers in about 1 minute | What to do about 502 |
| Script gets intermittent 502 with an empty body and nothing in the logs | Empty 502 generated by local proxy software (Clash / v2rayN) | Proxy-generated empty 502 |
| Image calls behind a VPN drop in batches after 90-180 s but are still billed | The local proxy closes connections that carry no data for too long | Proxy idle disconnects |
| Python raises SSLEOFError but curl works | OpenSSL 3.5+ post-quantum handshakes cut by middleboxes | SSLEOFError troubleshooting |
| 429 concurrency errors | Concurrency quota reached | API concurrency limits |
| Output truncated mid-sentence | max_tokens unset or too small | What is max_tokens |
| Returns 200 but the content is a refusal and JSON parsing fails | GPT models refuse policy-violating content without an error or category | What an OpenAI refusal looks like |
Claude returns 200 with empty content and content[0] throws | The request hit the provider’s safety policy; stop_reason is refusal | Why a Claude refusal returns empty content |
Claude Code / Claude Agent reports 429 Invalid signature in thinking block and all 10 retries fail | Not rate limiting: a thinking block in the history lost its signature | Claude invalid thinking signature |
| A specific model won’t run | Account permission locked, or token model whitelist | Why can’t I use some models · Token model whitelist |
| Image generation fails / returns empty | Google content safety triggered | Nano Banana failures |
| Gemini image API returns NO_IMAGE | A different cause from safety blocks | Why NO_IMAGE |
| Gemini image returns blockReason: OTHER within seconds, with no candidates | Input blocked before generation, usually by one reference image | blockReason: OTHER troubleshooting |
| Gemini image returns IMAGE_OTHER, only some of the time | Image was generated but filtered on output, often because the prompt names a real person | IMAGE_OTHER troubleshooting |
| Output differs greatly from the reference image | Reference images must be uploaded as base64 | Image differs from reference |
| Upload fails with does not match MIME type | The image URL carries CDN processing parameters | MIME type mismatch |
| White-background image shows black spots | Known behavior on the AI Studio route | White background artifacts |
| Want to poll image results by task ID | Image generation is synchronous only | Is there an async image API |
| Image bill far higher than expected | Resolution, quality, aspect ratio and count scale output tokens | Why GPT Image output tokens are high |
| Seedance blocks a face reference image | Real faces need asset upload plus identity verification | Why face assets are blocked |
| Seedance image link opens in a browser but submission fails with invalid image format | The link rejects Range requests, caps downloads, or expires too soon, so the provider can’t fetch it | Image link opens but fails |
Seedance 2.5 returns 400 TaskTypeConstraint despite a set ratio and duration | The task was read as video editing; ratio must be adaptive and duration must be -1 | Reference-to-video vs. video editing |
Seedance returns first/last frame content cannot be mixed with reference media content without first-frame mode | The image has no role and is treated as a first frame; use the native endpoint and set reference_image explicitly | First frame mixed with reference |
| Model claims to be another vendor / can’t state its version | Model self-knowledge is unreliable | Claude claims to be Qwen · Models don’t know their version |
| Web app smart, API dumb | The web app ships system prompts and tooling; the API is the bare model | Web app vs API |
| Unfamiliar calls on your KEY | The KEY may be leaked — trace it and disable it | Investigate unexpected KEY usage · Manage keys securely |
| Billing doesn’t add up | Per-usage and per-call billing read differently | Reading billing in logs · Model multiplier |
| Image or video downloads are slow or hit Read timed out | Generation succeeded; self-check and send us the results | CDN downloads slow or timing out |
| Do I need a proxy? | Direct connection works; no proxy required | Do I need a proxy |
| GitHub login says ‘Account already bound’ | That GitHub account is bound to another email | GitHub binding error |
| Forgot your password | Reset by email or ask support for help | Forgot password |