Roo Code not working or hanging on API Request: what to check
Roo Code stays silent, hangs on API Request or throws errors. We go from simple to complex: key, address, model, context, timeouts and limits.
6 min · · errors · IDE
When Roo Code is not working it usually behaves in one of three ways: it shows an error right away, hangs forever on "API Request", or replies but performs no actions. These symptoms have different causes, so the diagnosis below goes from the simplest to the most complex. It relies on the Roo Code documentation and Zukko gateway responses, checked as of October 18, 2026.
First, the key point: Roo Code has been shut down
According to the official Roo Code documentation, the extension was shut down on May 15, 2026; the RooCodeInc/Roo-Code repository on GitHub has been archived. There will be no more updates or fixes, so some problems (new models, changes in provider APIs, incompatibility with future VS Code versions) may stay unsolved. As replacements, the Roo documentation names Cline and ZooCode, a fork started by the community. How to connect Cline to the gateway is described in Cline setup. If you are staying on Roo Code for now, the steps below help find a cause that depends on settings rather than on the extension itself.
Step 0. Test the key without Roo Code
This rules out half the hypotheses in a minute:
curl -i https://api.zukko.pro/v1/chat/completions \
-H "Authorization: Bearer fetch_your_key" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-5-5","messages":[{"role":"user","content":"ping"}]}'A 200 response means the key, balance and model are fine, so look for the cause in the extension. Any other code: see the code table below.
Step 1. Provider and address
The most common reason for "nothing works" after setup: the address does not match the chosen provider. Open the gear icon in the Roo Code panel, the "Providers" section, and check:
| Provider in Roo Code | Address | Models |
|---|---|---|
| OpenAI Compatible | https://api.zukko.pro/v1 (with the suffix) | any ids from the catalog |
| Anthropic (the "use custom base URL" option) | https://api.zukko.pro (without /v1, Roo adds the path itself) | Claude and, if needed, others through the Anthropic format |
A swapped suffix gives a 404: the key is accepted, but the request goes to a nonexistent path. In detail: base URL with and without /v1. The list of supported extensions and their addresses is in the Zukko documentation.
Step 2. Model name
The "Model" field must contain the id exactly as in the catalog: case and dots matter (claude-sonnet-5-5, gpt-6.1-sol, deepseek-v4.1-flash). An unknown name returns 404 model_not_found. The current list: GET https://api.zukko.pro/v1/models.
Step 3. Does the model support tool calling
This is a frequent reason for "it replies but does nothing". Per the Roo Code docs, it uses native tool calling exclusively (the OpenAI-style tools format), with no XML fallback. If a model or provider implements it only partially, you get tool-call errors, and in the worst case the model simply cannot work in Roo Code. What to do: switch to another model from the catalog and repeat the same task. Which model suits your project cannot be said in advance; test it on your own task.
Step 4. Stuck on API Request
This is not one error but a state of "the request went out, no answer". What to check, in order.
Context size. The agent sends the whole history and files. The more input, the longer the model takes to process it before the first reply. If the task is hundreds of thousands of tokens, the wait is expected. Start a new task or press the "Condense Context" button at the top of the task: per the docs, it condenses earlier messages (you pay for the condensing as a separate model call).
Request timeout. VS Code settings have a roo-cline.apiRequestTimeout parameter (in seconds). Per the docs, the default is 600 seconds, the range is 0-3600, and 0 means "no timeout". If you once set 0, a hung request will wait forever. Return a sensible value.
Limit between requests. The API configuration profile has a "Rate Limit": a minimum pause in seconds between requests. The default is 0 (off). If it holds a large number, Roo Code waits before every request on its own, and this looks like a hang.
Restrictions at the model provider. A 429 may come not from Zukko limits (the gateway has no general rate limit of its own) but from the model provider. Retry later or change the model.
How much does an extra retry cost? Take a context of 300K input tokens. Formula: 0.3 × input price. claude-sonnet-5-5: 0.3 × 0.4 = $0.12 per send; glm-5.3-flash: 0.3 × 0.04 = $0.012; deepseek-v4.1-flash: 0.3 × 0.013 = $0.0039 (prices as of October 18, 2026). So on large contexts do not leave auto-retries unattended: set a daily dollar limit on the key.
Step 5. Context window
Errors like context length exceeded or 413 mean the request does not fit. In Roo Code, for OpenAI Compatible you can set "Context Window" and "Max Output Tokens" in the model configuration: enter the real values. Models in the catalog have different contexts: most have 1M, Grok 256K, GLM 128K. Roo Code, per the docs, trims the context by 25% itself on a window error and retries. If the error repeats, start a new task or enable automatic condensing in the context settings. A walkthrough of the error itself: context length exceeded.
Gateway error table
| Code | Cause | What to do |
|---|---|---|
| 401 | wrong key | recheck the key, issue a new one on the keys page if in doubt |
| 402 | insufficient balance | top up the balance |
403 model_not_allowed_for_key | the model is not in the key's allowed list | allow the model in the key settings |
404 model_not_found | unknown model name or wrong address | check the id and the /v1 suffix |
| 413 | request too large | reduce the context |
| 429 | key daily or monthly limit, or a provider restriction | see the key limits in the dashboard |
503 model_disabled | provider unavailable or model switched off | take a model from GET /v1/models |
Step 6. Collect diagnostics
Next to an error message in Roo Code there is a "Details" link. The "Copy basic error info" button copies the time, extension version, provider, model and error text, and "Get detailed error info" produces a full report with the task history and configuration (it may contain project data, so do not publish it without reviewing). The report is useful if you discuss the problem in the community or with the gateway's support: Roo Code's own tracker is no longer developed after the project's shutdown.
As a last resort: the "Reset" button in settings. Be careful, it is irreversible: it erases API profiles, keys from storage, custom modes and task history. Export your settings first. Usually it is enough to create a new provider profile from scratch and compare it with the old one.
FAQ
Roo Code stopped working after a VS Code update. What now?
Create a new provider profile and enter the address, key and model manually, then repeat step 0 with curl. If the key works but the extension does not, an incompatibility is likely: no fixes will come for the shut-down Roo Code, so moving to a maintained extension is the sensible choice.
A reply comes, but files do not change
Most likely the model calls tools poorly (step 3), or a mode that cannot edit is on (for example, Architect does not change code). Change the mode or the model.
It hangs only on large projects
It is the context size. Name specific files with @, start a new task, use context condensing.
How do I pay for usage from Russia?
The dollar balance is topped up via SBP (the payment page adds 8.5% on top), MasterCard or cryptocurrency; minimum $1.
zukko
Pay 25×
less
for Claude Code & ChatGPT
One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.
Related articles
- JetBrains AI Assistant not working: causes and workaroundsAI Assistant will not activate, stays silent or is off for some files. We go through the causes in the JetBrains docs and connect your own models via a gateway.
- Invalid API key in opencode: why the key is rejected and how to checkThe Invalid API key error in opencode almost always comes down to four causes. We test the key outside opencode and find where the chain breaks.
- Codex error 403: causes and how to keep workingA 403 in Codex comes in three kinds: a region refusal, an account problem and gateway key restrictions. How to tell them apart by the error text and what to fix.
- Cursor not working: common problems and how to fix themCursor froze, shows Reconnecting or does not answer. We go from simple causes to complex ones and cover problems with your own key and a gateway separately.