Help
Error reference
The messages Lookout shows when something fails, what each one means and what to do.
Match the message you see to a section below. A word in capitals, such as MODEL, stands for what the message names.
Find your error
| Message | Go to |
|---|---|
| Stopped, Interrupted, Paused, Round limit reached, Context full, Output limit reached, Plan limit reached, Declined, Failed | How a turn ends |
PROVIDER's 5-hour limit is used up, resets in 2h 10m, PROVIDER's weekly limit is used up | Plan limit used up |
MODEL's plan limit is used up, resets in 2h 10m, MODEL's own limit is used up | Plan limit used up |
PROVIDER needs you to sign in again, PROVIDER refuses ACCOUNT: sign it in again or use another account | Sign in again |
MODEL is limiting requests right now, try again in a moment | Limiting requests |
The turn stopped: MODEL was overloaded or unreachable | Overloaded or unreachable |
MODEL declined to answer this, PROVIDER declined this request on MODEL | Declined to answer |
PROVIDER refused this request as a third-party app. Nothing was billed. This is a Lookout bug: please report it | Refused as a third-party app |
| Retrying, Retried 3 times, Waiting on the provider's rate limit | Retrying |
Couldn't reach the provider. | Couldn't reach the provider |
The provider closed the connection. | The provider closed the connection |
Reached the limit of 512 model rounds before the turn ended | Round limit |
Context is not converging | Context is not converging |
context window exceeded and compaction could not recover | Context window exceeded |
The model answered the closing round with tool calls | Closing round with tool calls |
The model's response hit the output limit 2 times in a row | Output limit |
The model's response stream kept breaking before it finished | Stream kept breaking |
Still over the context budget after summarizing | Compaction notes |
MODEL isn't available: PROVIDER is signed out. Choose a model | Model isn't available |
| Microphone access is off, Dictation kept and the other dictation toasts | Dictation failed |
| Lookout could not start | Lookout could not start |
| This browser isn't signed in to this Lookout | The browser isn't signed in |
| macOS says Lookout is damaged and can't be opened | macOS says Lookout is damaged |
| The update didn't install | The update didn't install |
lookout: not signed in on this machine: run lookout login | Not signed in |
lookout: the Lookout app (pid N) is signed out of your Lookout account | The app is signed out |
lookout: lookout VERB is the USER's to run | Yours to run |
lookout: MACHINE is offline | Machine unavailable |
lookout: cannot reach the Lookout account service | Account service unreachable |
lookout: unknown command "WORD" | Unknown command |
Another message starting with lookout: | In the terminal |
An exit code from lookout | Exit codes |
An error code in a connected app, such as machine_unavailable | In another app |
How a turn ends
The line under a turn says how long it took. When the turn didn't finish on its own, the line also says how it ended, unless the notice right above it already does (a failed, spent or declined turn's): then the time's tooltip says it. A spent plan's or a rate limit's notice is a quiet wait, a declined one's a warning, and only a failure's is red.
| Line | What happened | What to do |
|---|---|---|
| Stopped | You stopped the turn. | Send a message to go on. |
| Interrupted | Lookout stopped while the turn was running, such as in a crash. | Click Continue to pick it up where it stopped. |
| Paused | An update or a restart paused the turn. | Nothing: it picks back up when Lookout starts again. If it doesn't, click Continue. |
| Round limit reached | The turn used all 512 of its model rounds. | See Round limit. |
| Context full | The work didn't fit the model's context, even after compaction. | See When the context runs out. |
| Output limit reached | The model's reply was cut off at its output limit twice in a row. | See Output limit. |
| Plan limit reached | The plan behind the model ran out. | See When a plan runs out. |
| Declined | The model declined to go on. Any answer above the line is not complete. | See Declined to answer. |
| Failed | The turn failed. The notice above the line says why. | Find the notice's message on this page. |
A turn that picked back up shows where, with Paused for update, Paused for restart, Interrupted, continued or Interrupted, resumed automatically.
In a chat
A failed turn ends with a notice. Details shows the provider's own message and, when the provider gave one, its Request ID for the request (quote it when you report the failure to the provider). Copy details (⇧⌘⏎) copies both. The buttons under the notice retry the turn on the same model or another: see Try again after an error. A retry that fails the same way (the same message from the same model) doesn't add a second notice: the one notice stays, and its Details say how often it failed, such as Failed 2 times, last at 12:57 PM.
The provider's own message is for you, never for a model. An agent, a parent chat or a subagent's parent hears only the
kind of failure and the provider that reported it, such as declined by the provider (claude), so a refusal never
spreads to the chats that read about it. lookout check, lookout sessions and the connected-app tools say it the same
way; --detail (or detail: true) adds the message.
PROVIDER's 5-hour limit is used up
The plan behind the model has no room left. When the provider says which of its windows ran out, the notice names it,
the 5-hour or the weekly limit, and the provider rather than the model: every model on that plan stops the same
way until the reset. When only the model's own limit ran out (a plan can limit one model on its own, such as Fable's
weekly limit on a Claude plan), it reads MODEL's own limit is used up, and the plan's other models still run.
Otherwise it reads MODEL's plan limit is used up. The notice says when it resets, and hovering it
shows the date and time. Continue on under the notice moves the turn to a model whose plan has room (no model of
the spent plan is listed, and one billed per token reads Per token), or Wait for the reset. A chat with fallback
models offers the first one whose plan has room first. With more than one account on the provider, see
When a plan runs out. lookout exec exits with code 3.
PROVIDER needs you to sign in again
The provider refused the sign-in Lookout has for it. A spent plan never reads this way: that is Plan limit used up.
Click Sign in again under the notice: Lookout reads the provider's accounts again first, and if one of them can
serve (you signed in meanwhile, or added another account), the turn goes on at once. Otherwise it opens the provider's
row in Settings › Providers, and the same menu offers other models. Once an account serves again, the stopped turn,
subagent or workflow agent goes on by itself where it stopped, unless you pressed Stop meanwhile: Stop ends that
wait, and Sign in again or Retry still runs the turn. lookout exec exits with code 4.
PROVIDER refuses ACCOUNT is the same stop for one account: the provider turned that account away (its plan ended,
or its organization's access is off) and no other account could take the request. With other accounts that have
room, the turn never stops this way: it moves to one of them, and the refused account reads Refused by the
provider in Settings › Providers until a new sign-in or a usage read shows it working (Read a plan's meters).
With every other account's limit used up, it stops on Plan limit used up instead, naming the refused account, and
waits for the first of the others to reset.
MODEL is limiting requests right now
The provider is pacing requests, for example with many chats running at once. Lookout keeps backing off for a few minutes, honoring a Retry-After, and the chat shows Waiting on the provider's rate limit while it does. A spent plan is different: that fails at once with its reset. If the wait runs out, your plan still has room. Click Retry in a moment, or pick another model from its chevron.
The turn stopped: MODEL was overloaded or unreachable
The provider had a server error or was overloaded, timed out, couldn't be reached or sent an empty reply, and Lookout's own retries didn't get through. An overloaded provider that says how long to wait is waited out on the same model for up to a few minutes first, and the Retrying row says the provider asked to wait. Nobody knows when the provider recovers, so the turn doesn't go on by itself: the notice is red, and the chat shows the red alert under Needs you. Click Retry, or pick another model from its chevron.
Retrying
A request failed for a reason that usually passes, and Lookout is sending it again: Retrying names the reason and the attempt, such as attempt 2 of 8. A rate limit that does not mean the plan is spent waits longer, and the row reads Waiting on the provider's rate limit while it does. Afterwards the row reads Retried request, Retried 3 times, or Waited on the provider's rate limit. Nothing to do unless the turn then fails.
Couldn't reach the provider
Lookout couldn't connect to the model's provider: the network is down, or something on it blocks the provider. It shows on a Retrying row or a subagent's card. Check your connection. If the retries run out, the turn fails with The turn stopped: MODEL was overloaded or unreachable.
The provider closed the connection
The provider ended the connection before its reply was complete. Lookout retries on its own; if the turn fails, retry it.
Reached the limit of 512 model rounds before the turn ended
A turn makes at most 512 model rounds: a request to the model and the tool calls it makes in answer. Reaching it can mean the agent was going in circles. The turn ends with Round limit reached. Send a follow-up message to continue, with a narrower request if the agent was looping.
Context is not converging
The agent kept reading more than the model's context holds: after each compaction, the context filled up again. The turn ends with Context full. Ask for the work in smaller parts, for example reading large files in ranges, or split the task across chats.
context window exceeded and compaction could not recover
The provider refused the request as too large for the model, or, before sending, Lookout found the next request larger than the model's window. Compaction ran, then a last clear of tool output, and the request still did not fit. Start a new chat from a summary, or switch to a model with a larger window.
The model answered the closing round with tool calls
When the context runs out, Lookout asks the model for a final report without tools. This model called tools instead, and they weren't run. Send a follow-up message to continue.
The model's response hit the output limit 2 times in a row
The model's reply was cut off at its output limit, and cut off again after Lookout asked it to continue. The turn ends with Output limit reached. Ask for smaller steps, for example writing a large file in parts.
The model's response stream kept breaking before it finished
The provider's reply broke off twice in a row before it was complete. Retry the turn, or pick another model.
MODEL declined to answer this
The model refused to answer the request, or stopped partway through an answer and declined to go on: then the answer above the notice is not complete, and the notice's mark is a warning, not a failure. Tool calls in a declined answer never run, since one may be cut off partway; each says it wasn't run. Details shows the reason the provider gave, if any, such as its category. Rephrase the request, or pick another model from Try again's chevron.
The notice names the provider that declined (PROVIDER declined this request on MODEL). What a provider declines is often something new in the chat, such as a file the agent just read, and every later request carries it again. Retry without these N items takes the entries added since the last request that provider answered out of its context and runs the turn again; another provider's models still read them. The entries stay in the chat, dimmed and marked Removed from context, with Undo. To take any other entry out, right-click it and choose Remove from context. An agent's chat, a subagent, and a chat an agent or an orchestrator such as Claude Code started do this once by themselves, or go on with a fallback model on another provider, and say so in a row. They wait for you instead when what was declined holds your own message, and a chat someone else started waits for you on a turn you typed or retried there.
PROVIDER refused this request as a third-party app
The provider read Lookout's request as one from a third-party app, which a plan serves only from paid extra usage, and with extra usage off it refused it. Nothing was billed: Lookout never spends extra usage. Lookout's requests are built not to read this way, so this is a bug in Lookout. How to report, under the notice or in the stop's details, opens Collect a report; quote the Request ID from Details. A retry on the same provider fails the same way. A chat with fallback models goes on by itself on the next one another provider serves, for that turn only; its next turn starts on its own model again. A subagent or a workflow agent does the same through its chat's fallback models or its call's models, for that run only. Otherwise, when the chat may use a model from another provider, the notice leads with Continue on that model and Retry waits in its menu; with none, Retry leads.
Compaction notes
The Context summarized and Context cleared rows can carry a note:
| Note | What it means |
|---|---|
Still over the context budget after summarizing (or after clearing) | Compaction didn't free enough room. If the chat keeps filling up, the turn ends with Context full. |
A summary was rejected and redone | A summary failed Lookout's checks and was written again. Nothing to do. |
A summary could not be written, so only tool output was cleared | Lookout freed room by clearing tool output only. The agent can read the cleared output again. |
Other messages from a provider
When a provider refuses a request for any other reason, the notice shows the provider's own message. Retry, or pick another model. If it keeps happening, collect a report.
In the message box
MODEL isn't available: REASON. Choose a model
The chat's model can't run, so the message box says why. Use MODEL beside it switches the chat to the same model on another provider you have (Use Haiku 5.5 on your API key, billed per token), else to the model a new chat would start on. A switch that names billed per token moves the chat onto a provider that charges for each token, and happens only when you click it. While the chat's stopped turn offers Continue on, the box says only why, with no Choose a model and no Use: Continue on is the move, and an empty send runs it. A failed turn whose model can't run leads with Continue on another model, never a Retry on the one that can't. The reasons:
| REASON | What to do |
|---|---|
PROVIDER isn't connected | Connect the provider. PROVIDER is the company (OpenAI, Anthropic), or for Anthropic its kind of access (your Claude plan, your API key). |
PROVIDER is signed out | Sign in to it again in Settings › Providers. |
PROVIDER needs a sign-in | The sign-in expired: click Sign in again on the provider's row in Settings › Providers. |
PROVIDER refused the sign-in | Click Sign in again on the provider's row in Settings › Providers. |
PROVIDER has no active plan (renew it, or remove the key) | The provider says the plan was canceled or expired. Renew it with the provider (Renew plan on the account in Settings › Providers when Lookout knows the page), or remove the key or sign out there. A subagent or a delegated chat on that model is refused with the same sentence. |
it isn't on your plan | Pick another model. |
PROVIDER refuses Lookout's client | Pick another model: the provider's free tier stopped serving Lookout (A free tier). |
not enabled for this key on Anthropic | Pick another model: the key was added with --models naming others. |
it isn't available right now | Pick another model. |
Dictation
Dictation failed
The toast's title says what went wrong:
| Title | What to do |
|---|---|
| Microphone access is off | Allow Lookout to use the microphone. In the Mac app, Open Settings on the toast opens Privacy & Security, Microphone; in a browser, allow it in the site's settings. |
| No microphone found | Connect a microphone. |
| The microphone didn't start | Quit the app that uses it, then try again. |
| Dictation kept | Lookout didn't answer, so the take waits on this Mac. Click Retry once Lookout is back (it sends the same recording), or find it under Recent dictations with a right click on the microphone. |
| Dictation kept, not transcribed | The toast says why, and the take waits on this Mac. Downloading the speech model (40%). Try again in a moment. means the first dictation is downloading the speech model: wait for it, then click Retry. |
In the Mac app
Lookout could not start
The app couldn't start its server, and quits after this dialog:
| The dialog says | What to do |
|---|---|
| Another Lookout server is running | Quit other copies of Lookout, then open it again. |
Lookout's bundled runtime is missing or Lookout's bundled server is missing | Reinstall the app. |
Lookout server did not start | Open it again. If it fails again, read server.log (see Logs). |
When the dialog follows an update, it reads Lookout VERSION couldn't start and offers Go Back to the version you had before. Lookout then won't install the version that failed again.
The update didn't install
The restart to update failed, and Lookout is still running the version it had. Settings › General › Software update has the details.
In the terminal
The lookout command starts each error with lookout: and ends with an exit code.
not signed in on this machine: run lookout login
This machine isn't on your Lookout account. Run lookout login. Exit code 4.
On a Mac with the Lookout app, open the app and sign in there instead: while it runs signed in, lookout works through it with no login of its own (On a Mac with the app).
the Lookout app (pid N) is signed out of your Lookout account
The Lookout app runs on this Mac, but it isn't signed in to your account, so lookout has no account to go through. Sign in from the app. Exit code 4.
lookout VERB is the USER's to run
An agent ran a command from its chat's Shell that only you run, such as rename or providers sync. Run it yourself in the app or a terminal. Exit code 2.
lookout VERB takes this machine's own account keys
On a Mac with the Lookout app, devices, recovery-key, remove and choosing a provider's copy change your account's devices or keys, which only the app does. Use the place the message names in the app's Settings. Exit code 4.
this machine's account session ended: run lookout login
Your account no longer holds this machine's session: it was revoked, expired or replaced. Run lookout login. Exit
code 4.
this machine was removed from your account
Another of your devices removed this machine from your account. Run lookout login to add it again. Exit code 4.
the Lookout account refused this machine's signature
The account couldn't verify this machine's request, most often because the machine's clock is off. Set the clock right, then try again. The machine stays signed in. Exit code 1.
MACHINE is offline
The machine you named with --on can't take the call. The message says it is offline, asleep, signed out
or degraded, and why, such as vps-1 is offline (Lookout quit 3 min ago). Check it with lookout machines, and
see Check a machine's status. Exit code 5.
cannot reach the Lookout account service
This machine couldn't reach your Lookout account. The message reads
cannot reach the Lookout account service at ADDRESS, or names the service and says it did not answer within 10s or
failed (HTTP 502); try again shortly. Check the connection, then try again. Exit code 6.
unknown command "WORD"
The first word isn't a lookout command. A single word is never sent as a prompt: when a command is close, the
message asks if you meant it, and lookout exec "WORD" sends the word as a prompt. lookout --help lists the commands.
Exit code 2.
a prompt is required
lookout exec needs a prompt: pass one, pipe it in, or pass - to read it from stdin. Exit code 2.
unknown thread "ID"
No chat on this machine has that ID. On another machine the message reads no thread ID on MACHINE. Copy ID in a
chat's menu copies its ID, and lookout sessions lists a machine's chats. Exit code 2.
Exit codes
| Code | Meaning | What to do |
|---|---|---|
0 | The command finished; a run's turn ended normally. | Nothing. |
1 | The turn or the command failed; stderr says why. | Read the error, then run it again or resume the chat. |
2 | The command line was wrong: an unknown command or flag, a missing value, an unknown chat. | Run lookout VERB --help for its usage. |
3 | The model's plan ran out for now. | Wait for the plan to reset, or run with another model or account. |
4 | A sign-in is missing: the provider's, or this machine's on your Lookout account. | For a provider, sign in again in Settings › Providers (lookout providers sync brings it to another machine); for this machine, run lookout login. |
5 | The machine is offline, asleep, signed out or not answering. | Check it with lookout machines, then try again once it is online. |
6 | This machine could not reach the Lookout account service. | Check the connection, then try again. |
130 | The run was stopped (Ctrl-C, or lookout stop). | Resume the chat to carry on. |
In another app
A connected app gets a refused call back as an error with a code and a message, and most often next: what to
do instead, often the tool to call. Where calling again can help, retry says when: soon, later, or check_first
when the call may already have run.
| Code | What happened |
|---|---|
lookout_unreachable | Lookout isn't running on that machine, or is still starting. Call again in a moment. |
machine_unavailable | The machine is offline, asleep, signed out or didn't answer in time. lookout_machines shows when it is back. |
network_unavailable | The Lookout account service isn't answering, or this machine can't reach it. Call again later. |
machine_not_found | No machine on your account has that name. |
signed_out | This Lookout isn't signed in to your account. |
busy | A running turn, a compaction or a restore holds the chat. Wait for it with lookout_check. |
not_found | No chat or project has that ID (or, for a chat, starts with it). lookout_fleet lists the chats. |
ambiguous | Several chats' IDs start with that short ID. candidates lists each one's full ID, title, lane and state: call again with the one you mean. |
agent_one_chat | That project or folder is a Lookout agent's, and an agent keeps one conversation: no new chat starts there. threadId is its chat: send to it with lookout_steer. |
unknown_model, model_unavailable | That model doesn't run now. lookout_models lists the ones that do. When a provider billed per token serves the same model, next names its exact ID: call again with it only if you want that spend. |
plan_spent | That model's plan is spent until resetsAt (planSpent), and the chat has no onQuota policy. openModels lists the models whose plans are open now: pass one, or onQuota: "wait" to wait for the reset (a lookout_retry waits with wait: true). |
grant_needed | You haven't given that app the permission the call needs on this machine. setting names the place: Add projects (how) or Configure agents (how) in Settings › App access. For a folder, closest names the projects nearest it until then: pass one's ID. |
outside_grant | The folder is outside what you let that app add as projects. allowed lists where it may. |
outside_roots | The MCP server was started with allowed folders, and this one is outside them. A chat's cwd must sit inside its project or under those folders too. closest names the projects nearest it: pass one's ID. |
title_too_long | A rename over 40 characters, a sidebar title's limit, from anyone but you (lookout_configure, an agent, a model); your own renames go to 120. Nothing in the call changed: pass 2 to 6 words and put the goal in a message. |
invalid_argument | The call is wrong as the message says. |
See App access to connect one, and MCP tools for every tool.
Related
- Troubleshooting: Find your symptom and its fix, run the doctor check, and collect what to send when you need help.
- Models and providers: Connect the providers you have a plan with, then pick a model, its effort and its variant for each chat.
- Accounts and usage: Use several accounts per provider, choose how Lookout routes between them, and see what each plan has left.