Roo Code API Request stuck or failed? Here are the fixes that actually work.

That spinner can sit there forever while your half-finished task hangs in limbo. A stuck request usually comes down to a stalled connection, a provider limit, an oversized context, a local model that is not answering, or a wedged extension state.

Update: Roo Code's official repository was archived on May 15, 2026, and its README says the extension was shut down. Roo's repository names Cline and Zoo Code as alternatives; Kilo Code has its own Roo migration guide. Our Roo Code migration guide compares them. The troubleshooting steps below remain useful for existing installations.

Last verified: August 31, 2026 · Help first. Recovery bridge at the end.

TL;DR: If the request has been spinning for more than a couple of minutes with no new output and no command still running, preserve the current diff and cancel it. Check provider credits and limits. If the task is long, start a fresh Roo task instead of retrying a bloated conversation.

Roo Code stuck at API Request: wait, cancel, or switch?

Use the visible activity, not the spinner alone. Roo can legitimately wait on a long command, a local-model cold start, or a slow first token. A request is probably wedged when the task timeline, terminal, provider dashboard, and local server all stay unchanged.

WAIT

Activity is still moving

Wait when a terminal command is still producing output, Ollama is loading a model, or tokens and tool events are still appearing. Interrupting an active tool can leave its own operation half-finished.

CANCEL

Nothing has changed

If there is no new output for two or three minutes and no tool is running, inspect the working tree, capture the error state, cancel once, and send one small verification request.

SWITCH

A clean test also fails

If a one-line task fails with the same provider profile but works with another model or endpoint, stop replaying the full task. Keep the smaller working profile and resume from preserved state.

Roo Code documents a default API request timeout of 600 seconds through roo-cline.apiRequestTimeout. You do not have to wait the full ten minutes when the request is visibly idle, but setting the timeout to 0 removes the safety limit and can create a truly endless wait.

Six causes, fastest fix first.

Use these in order. If one retry works but the next request hangs again, the repeated cause is usually provider pressure, context size, tool-call compatibility, or the transport underneath Roo Code.

01 / CANCEL

Preserve, then retry once

Check git status --short and git diff --stat, then cancel. Retry with a tiny request such as “report the current task state without editing files.” Repeating the full prompt hides the real cause.

02 / LIMITS

Check credits and rate limits

OpenRouter, Anthropic, OpenAI, and other providers can return billing, quota, capacity, or 429 errors. Check the exact provider profile and status page before changing Roo itself.

03 / CONTEXT

Start a focused task

Conversation history, mentioned files, system instructions, and tool output all consume context. Remove broad file mentions and restart with only the goal, changed files, known failure, and next test.

04 / LOCAL

Test the local model directly

For Ollama or LM Studio, confirm the server sees the request and the model answers outside Roo. Cold starts, insufficient memory, context settings, and an unloaded model can all resemble an extension hang.

05 / PROVIDER

Change one variable

Test the same small request with one different model or provider profile. For a custom base URL, proxy, SSH session, WSL window, or code-server setup, also test from ordinary local VS Code.

06 / EXTENSION

Update and reload Roo Code

After preserving the working tree, update Roo Code and run Developer: Reload Window. Provider and native tool-call bugs have been fixed across releases, so an old build can preserve a failure that configuration changes cannot solve.

Read the failure signal before retrying.

The message often tells you which layer failed. Capture the exact text before closing the task or reloading VS Code.

401 / 403

Authentication or access

Re-select the intended API profile, then verify the key, organization or project access, and model permissions. Do not paste a replacement key into the chat.

429 / LIMIT

Rate or usage limit

Wait for the provider reset, reduce parallel requests, or switch to another configured model. A blind retry loop can extend the problem and spend more quota.

400 / CONTEXT

Request shape or context

Start a fresh task with fewer file mentions. On OpenAI-compatible endpoints, also confirm that the selected model fully supports native tool calling.

5XX / GATEWAY

Provider-side failure

Check the provider status page and retry one small request after a short pause. If another profile works immediately, the workspace is probably not the cause.

SPINNER / NO ERROR

Streaming or extension state

Open Roo Code output and the VS Code developer console. Record whether the provider received the request, whether streaming began, and whether a tool call stopped mid-event.

REPEATED TOOL CALL

Model compatibility

If the model emits tool JSON as text, returns empty tool calls, or loops at the same action, use a model and endpoint with complete native function-calling support.

Provider-specific checks that isolate the cause.

OPENROUTER / CLOUD

Check the actual upstream

Confirm credits, model availability, and the provider status behind the route. Then compare the same tiny prompt through a different model or first-party profile.

OPENAI COMPATIBLE

Verify URL, model, and tools

Confirm the base URL and model ID. Roo Code requires native tool calling for OpenAI-compatible providers; partial function-calling or malformed streamed tool events can stall a task.

OLLAMA

Watch the local server

Run ollama ps and ollama list. Preload the model, check available VRAM or RAM, and reduce the model's num_ctx if the first request dies during allocation.

LM STUDIO

Confirm the loaded model

Start LM Studio's local server, load the intended model, and verify Roo points to the configured host. Roo's documented default is http://localhost:1234.

REMOTE VS CODE

Separate transport from Roo

If the failure occurs only through code-server, SSH, WSL, a container, VPN, or proxy, run the same provider profile and tiny prompt from local VS Code.

LONG TASK

Reduce the next request

Use exact paths and one objective. Roo's own large-project guidance recommends smaller tasks, targeted context mentions, and re-including only the important state.

Find the evidence before you reload.

OUTPUT

Open Roo Code output

In VS Code, open View > Output and select Roo Code. Save the first error, provider name, model, and timestamp rather than only the final retry message.

CONSOLE

Inspect silent hangs

Use Help > Toggle Developer Tools, then inspect the Console. Roo maintainers request this evidence for stuck requests because it can reveal stream and extension errors absent from chat.

DEBUG

Enable debug only when needed

Roo documents the roo-cline.debug setting for additional console output. Avoid Reset Settings as a first step: Roo warns that reset deletes profiles, secrets, custom modes, settings, and task history.

If Roo Code says “API request failed”: treat the error as a diagnosis, not proof that the task is lost. Capture the provider message, current diff, failed commands, provider and model, and verification state before the next request.

Before you retry, protect the work.

Canceling the request does not erase files already written, but the in-flight response is gone. Roo checkpoints can help restore workspace files, while your normal Git diff shows what is currently on disk. Check both before another agent edits anything.

01 / DIFF

What changed

Capture git status --short, git diff --stat, changed files, generated files, and any uncommitted configuration changes.

02 / FAILURE

What failed

Keep the provider error, Roo output, failed command, tests already run, model and profile, and approaches that did not work.

03 / NEXT

What to test next

Write one smallest verification step. Do not ask the next task to rediscover the entire project before it confirms the preserved state.

Goal:
Changed files:
What already works:
Exact failure or last output:
Attempts that failed:
Next safe action:
Verification command:

The spinner is a symptom. The lost state is the cost.

If Roo Code hangs repeatedly on the same project, the session may have become the liability: too long, too bloated, or too close to a provider limit. The practical fix is a fresh task. The expensive part is reconstructing the half-done work, decisions, failed attempts, and verification state.

ShardStitch does not fix Roo Code's live request. It protects the session around it. ShardStitch rebuilds a compact local continuation packet from git diff, changed files, notes, session captures, verification state, and next action, then formats it for a fresh Roo task or another AI coding tool.

Sources and verification.

This guide separates Roo's documented behavior from field reports. The timeout, debug, context, checkpoint, provider, Ollama, and LM Studio checks come from Roo Code's official documentation; the silent-spinner patterns are also reflected in Roo's public issue history.

Roo Code troubleshooting FAQ · API timeout and debug settings · large-project context guidance · checkpoint behavior · OpenAI-compatible requirements · Ollama setup and OOM fixes · LM Studio setup · stuck API request issue · code-server hang report

FAQ.

How long should I wait when Roo Code is stuck at API Request?

Wait while a command, local-model cold start, or streamed response is still producing activity. If nothing changes for two or three minutes and no tool is running, preserve the diff and cancel. Roo's documented default request timeout is 600 seconds.

Does canceling a stuck API request lose my work?

Canceling stops the in-flight response but does not erase files already written. Inspect git status, git diff, and Roo checkpoints before sending another instruction.

Why does Roo Code keep retrying instead of showing an error?

Provider limits, transient gateway errors, streaming failures, and OpenAI-compatible tool-call problems can surface as retries or an unchanged spinner. Test one tiny request with another model or profile.

Is “API request failed” the same as “stuck at API Request”?

They can share the same causes. A failed request returned an error; a stuck request never completed. Preserve the same evidence for both: provider message, model, current diff, logs, and next verification step.

Why does Roo Code API request fail with Ollama?

Common causes are a stopped server, cold or unloaded model, insufficient VRAM or RAM, an oversized num_ctx, or a model without reliable native tool calling. Test the model outside Roo first.

Why does Roo Code API request fail with LM Studio?

Check that LM Studio's local server is running, the intended model is loaded, Roo uses the correct host and port, and the model context length can hold the request.

Where can I find Roo Code error logs?

Open View > Output and select Roo Code. For a silent hang, open Help > Toggle Developer Tools and inspect the Console.

Does ShardStitch fix the Roo Code request?

No. The troubleshooting steps address the live request. ShardStitch protects the surrounding working state so a fresh Roo task or another tool can continue without re-explaining everything.