Zukko Blog

Guides to Claude Code, Cursor, Codex and the Claude and GPT APIs: setup, token savings and troubleshooting.

Error 503 model_disabled: What It Means and How to Handle It

4 min · · errors

model_disabled means one specific model is switched off right now, not that the whole service is down. How to find a replacement, switch your IDE, and code a fallback.

How to Debug Requests to an LLM API: From curl to Error Codes

5 min · · development

Most often the problem is the request, not the model: the URL, key, limit or body size. A step-by-step debugging routine and a table of Zukko error codes with fixes.

Logging LLM requests without leaking personal data

4 min · · development

Logs are needed for debugging and cost tracking, but LLM requests often contain personal data. What to log, how to mask it and how to store it.

The insufficient_quota error in the OpenAI API: causes and fixes

5 min · · errors

insufficient_quota arrives with a 429 status, but it's not a rate limit — it's money or a spend cap. Causes, exact codes, and handling in Python.

Claude 529 overloaded error: what it means and how to handle it

6 min · · errors

A Claude 529 error isn't your limit or your balance, it's API overload. How to retry, when to switch to a fallback model, and what you'll see through a gateway.

LLM API error handling: retries, 429, 503 and a fallback model

5 min · · errors

Not every error is worth retrying, and not every one can be survived on the same model. Zukko error codes, backoff between attempts, and a fallback model chain in code.

Common errors when sending images to vision models

4 min · · errors

A request with an image breaks differently than a plain text one. Where images actually get lost when calling the API, and how to read it from the response.

Error 499: the client closed the connection before the response arrived

4 min · · errors

The response starts, then vanishes halfway through — a familiar sight during long generations. Almost always a client-side timeout, not a token limit.

403 model_not_allowed_for_key explained

4 min · · errors

The key works, the balance is fine, and the model still returns 403. Here is how per-key model allowlists work and how to fix them.

422 idempotency_conflict: what it means and how to fix it

4 min · · errors

You retried a request with the same idempotency key but a different body, and got a 422 instead of the expected replayed response. Here is why.

The model_retired error: when a model gets retired

4 min · · errors

A model that worked yesterday answers with 400 and code model_retired today. Here is what that means and how to handle it in code instead of by hand.

Error 413: request too large — how to work around it

4 min · · errors

A 413 is almost never about a key or a model — it means the request body itself is too heavy. Where the extra weight comes from and how to cut it.

Image size and format limits: common mistakes

5 min · · изображения

An image error rarely names the exact cause outright. Where images actually get rejected on input, and how to debug it fast.

503 errors — the model provider is unavailable

2 min · · errors

A 503 says the problem is not yours. How to survive it without losing work, and why streamed errors arrive with a 200.

context_length_exceeded — the context window is full

2 min · · errors

The model refused because your request does not fit. What makes up the context window and what to cut first.

429 Too Many Requests — what to do

2 min · · errors

A 429 is not a failure, it is a request to wait. How to retry properly and why agent workloads hit it soonest.

401 Invalid API key — why your key is rejected

2 min · · errors

You pasted the key and the server still answers 401. Here are the five causes, ordered by how often they actually happen.

Claude Code keeps asking to log in to Anthropic

2 min · · claude-code

Claude Code insists on signing in to Anthropic even though your key is configured. One environment variable is to blame.

The model's answer stops mid-sentence — why

2 min · · errors

The answer cuts off mid-word. There are four causes, and one field in the API response tells them apart.

Cursor does not see your models after changing the base URL

2 min · · cursor

The key is in, the URL is replaced, and the model list is empty or verification fails. Four causes by frequency.

Common API connection errors and how to read them

3 min · · errors

Connecting usually takes two minutes; when it does not, the cause is almost always one of four things. How to read the server's answer.

Base URL with or without /v1 — which client needs what

2 min · · setup

The same gateway needs different base URLs in different clients. Getting the suffix wrong yields a 404 with no useful explanation.