Troubleshooting
What each Bandicot error means and what to do: provider errors, context limits, local models, sessions, Versions, two apps on one Mac and engine error codes.
Available now. A current user-facing path exists within the stated scope.
Where errors show
A problem during a turn shows as a message in the chat, a refused action shows where you clicked, and quiet problems wait in the Activity list.
Errors and anything that needs you stay on screen until you dismiss them; warnings are also kept in the sidebar's Activity view. From Terminal, bandicot rpc prints the error code and message.
First steps for any problem: wait for the running turn to finish, try again once, and if it repeats, quit and reopen Bandicot. Your chats and settings live outside the app and are kept.
The model provider refused
A provider error names its HTTP status, and the status tells you whether to reconnect, pay, pick another model or wait.
A rate limit that says when to retry is waited out inside the turn when the wait is short. A plan limit on a signed-in account counts as spent until it resets.
| Message | What to do |
|---|---|
The provider rejected the credential. Reconnect it under Settings, Model. (HTTP 401) | Open Settings › Model, disconnect the provider and connect it again. |
The provider account needs payment or credit. (HTTP 402) | Add credit or a payment method at the provider. |
The provider refused this account or model. (HTTP 403) | Check the plan at the provider, or pick another model. |
The provider does not offer this model. Pick another model. (HTTP 404) | Pick another model with ⇧⌘M. |
The provider is rate limiting this account. (HTTP 429) | Wait a moment, then send again. |
The provider is unavailable right now. Try again shortly. | The provider is down or busy (HTTP 5xx). Try again later or switch provider. |
provider request failed | Bandicot could not reach the provider. Check the network connection. |
No credential is connected for this provider. | Connect it in Settings › Model. |
OpenAI account sign-in expired. | Reconnect the OpenAI account in AI Gateway. |
Your OpenCode sign-in ended. | Sign in again in AI Gateway. |
Claude account: Claude Code is not installed. | Install Claude Code, then reconnect the Claude account in AI Gateway. |
Unlock your Mac to use your saved keys | Unlock the Mac or the Keychain, then try again. |
The conversation is too long or the agent stalls
When a conversation no longer fits the model, Bandicot compacts it and retries; with compaction off the turn ends with context overflow.
Turn Context compaction back on in Settings › Capabilities, run /compact, or start a new session. A session that grows past what Bandicot can continue says This session is too large to continue. Start a new one.
A turn that ends with stalled: stopped itself because the agent repeated the same tool calls, no tool call succeeded, or it kept hitting the same error. Read the last tool rows, correct the task and send it again.
If it goes wrong
- A message says the model stopped responding with no update for a while and that your prompt is kept.
- The model sent nothing for a minute and a half. Your prompt is still in the box; send it again, or pick another model. Stalled turns has more.
TypeSafe refused a call
When the agent calls a TypeSafe model and it fails, the tool result says why, and the status in the message tells you whether to reconnect or wait.
These appear in the tool row of the chat, not as a banner, and the agent reads them and can try again. Connect TypeSafe in Settings › Model.
| Message | What to do |
|---|---|
TypeSafe rejected the API key (401): reconnect the TypeSafe provider with a valid key | Paste a fresh key from the TypeSafe console in Settings › Model. |
TypeSafe rejected the request (422) and a reason | The request was not valid. Read the reason, then ask again with different input. |
TypeSafe rate-limited the call (429) after retries; try again shortly | Wait a minute, then ask again. |
TypeSafe is overloaded (529) after retries; try again shortly | Wait a minute, then ask again. |
TypeSafe returned and a status | TypeSafe answered with an error. Try again later. |
TypeSafe returned a response this client could not parse | Try again. If it repeats, update Bandicot. |
could not reach TypeSafe and a reason | Check the network connection. |
[aborted] | You stopped the turn while the call ran. |
The agent could not use a file or a tool
A tool refuses with a plain reason when a file is outside the project, in a private place or changed since the agent read it; the reason names the fix.
The agent reads the reason and adapts, so you usually only see it in the tool row. Every refusal and what to change is listed with the agent's tools and private places.
| Message | What to do |
|---|---|
reaching outside the project is disabled in Settings > Capabilities | Turn reaching outside the project on in Settings › Capabilities, or move the file into the project. |
workspace symlinks are refused while reaching outside the project is disabled | The link points out of the project. Copy the file in, or allow reaching outside. |
this is a private place (keys, sign-ins or browser profiles); the agent never opens it | Nothing to change; the agent never opens those places. |
it changed since you last read or wrote it | Let the agent read the file again, then repeat the edit. |
sub-session and a name, claimed it | A sub-session owns that file. Message the sub-session instead of editing it. |
This text holds a masked key | The text contains a key Bandicot hides. Take the key out of the text. |
Web and browser are disabled in Settings > Capabilities | Turn on Web and browser in Settings › Capabilities. |
A helper stopped
Voice, the agent's browser, Team channels and local models each run as a helper, and Activity shows a line when one restarts, stops or cannot start.
Open the Activity view of the sidebar to see the line. A helper that crashed once restarts by itself and the line reads restarted after a crash with the time; it stays for half an hour unless you dismiss it. If it crashes twice within two minutes it stays stopped, Activity says stopped with the reason 2 crashes in 2 minutes, and a notice with Restart appears. A line that reads could not start gives the reason after it.
Restart is on the browser and Team channels lines. If it fails the line adds that restart did not go through, so try again. The voice helper has no button: it starts again the next time you open the voice window. A local model has no button either: it starts again when you choose it. Move over the Activity list to find a small dot, Helpers, that lists every helper as running, idle or stopped. The Mac app describes the rest of the list.
If it goes wrong
Team is not availablewithTry again.- The Team helper is not running or the host is not reachable. Choose
Try again; if it repeats, restart it from Activity. Team channels are not availableorNo team yetin the sidebar footer.- No team is open on this Mac. Open or join a team first. See Team channels.
The local Teams assignment was not saved.- Try the assignment again once Team channels is running.
- The agent's browser keeps stopping.
- Restart it from Activity. After two crashes within two minutes it stays off until you do.
Doctor: check the state of the app
Doctor lists the host state and health checks, and each check reads pass or check so you can see what to fix.
Open Home, then the Account card, and choose Doctor. It shows Session & kernel, with the plain readouts, and Health checks. A line that says check is the one to look at first.
| Check | It looks at | If it says check |
|---|---|---|
Backend ready | The engine answers. | Quit and reopen Bandicot. |
Workspace open | A project is open. | Open a project with ⌘O. |
Provider selected | A provider is chosen. | Pick one with ⌘P. |
Model selected | A model is chosen. | Pick one with ⇧⌘M. |
Provider usable | The provider has a working credential. | Reconnect it in Settings › Model. |
Session active | A chat is open. | Start one with ⌘N. |
Profile selected | A profile is in use. | Choose one from Home. |
Verification lane, Activity density, Context window | How busy the session is and how full the window is. | Compact or start a new session if the window is full. |
Busy, Steering queue, Follow-ups, Compute class, Activity, Tools | Plain readouts, not checks. | Nothing to do. |
A local model will not start
A local model refuses to load when its file or runtime changed on disk; download it again or remove and add it in Models.
Bandicot never swaps in another model silently: when the chosen one cannot run, the turn says so and stops.
| Message | What to do |
|---|---|
The selected local model could not start. | Reinstall or pick that model again in Models. |
The selected local model is unavailable. No other model was used. | Pick an installed model, or install this one. |
This model's file changed after it was added, so it was not loaded | Remove the model in Models and add it again. |
This model's file changed on disk, so Bandicot is checking it | Wait for the check to finish, then send again. |
A local model runtime does not match the build Bandicot ships | Download it again in Models, or reinstall Bandicot. |
A session will not open or save
Most session errors ask for one thing: wait for the last step, free disk space, update Bandicot or start a new session.
Each message here is the engine's own wording, so the fix beside it is the one Bandicot itself suggests.
| Message | What to do |
|---|---|
Bandicot is still finishing the last step. Try again in a moment. | Wait a moment and try again. |
Too many messages are waiting. Let the current one finish first. | Let the running turn finish before sending more. |
This session no longer exists. Start a new one. | Start a new session. |
This session's file is damaged. Start a new session to keep working. | Start a new session; the old file stays on disk. |
A newer Bandicot wrote this session. Update Bandicot to open it. | Install the latest Bandicot. |
This session belongs to another profile. | Switch to that profile, or start a new session here. |
Bandicot could not save to this session. | Check the disk, then try again. |
The disk is full. Free some space and try again. | Free disk space, then try again. |
Versions refuses a folder
Versions never keeps history for a folder that holds Bandicot's own data, such as your home folder; open a project folder inside it instead.
Chat and tools still work in such a folder; only version history stays off. Pick a project folder when you want changes you can undo. Versions covers the rest.
| Code | What it means | What to do |
|---|---|---|
RootOverlapsDataDirectory | The folder contains Bandicot's own data. | Choose a project folder outside it, such as a folder inside your home folder. |
EnrollmentRequired | Versions is not on for this folder. | Open Versions and keep versions of the folder. |
stale_preview | What you reviewed changed after the preview. | Open the preview again and confirm. |
ExpiredPreview | The check expired. | Preview again. |
ConflictChoiceRequired | A file changed after the run. | Choose what to keep for each file. |
RecoveryRequired | An undo stopped partway. | Run recovery in Versions before anything else changes. |
HistoryLimit | The folder has the most named points it can hold. | Remove a named point first. |
ScanLimit | The folder has more files than Versions can keep. | Keep versions of a smaller folder. |
BlobMissing, BlobCorrupt | A saved version is missing or damaged. | Pick another version. |
DestinationNotEmpty | The export folder is not empty. | Pick an empty folder. |
NoSpaceLeft | The disk is full. | Free space, then retry; Versions may ask for recovery. |
Another Bandicot app manages this data
When Bandicot and Bandicot Beta are both open, only one runs automations, setup and recovery; do that work in the app that owns the data, or quit it.
The message reads Another Bandicot app open on this Mac manages automations for this data. Change or run them there, or quit it and try again. The apps never take the data from each other by themselves. Bandicot Beta explains which one owns it.
An update did not install
Bandicot updates itself the next time you open it, and the top of the Activity list says when an update waits or fails.
Update waits: an agent is running clears when the work ends. Bandicot cannot update itself means the app sits in a folder you cannot change: move it to Applications. A failed install keeps the version you had, and download problems retry later by themselves.
Every engine error code
Each engine error has a code and a message; find the code here for what it means and what to do.
Codes written in lower case with underscores reach the app exactly so. Some reach it in CamelCase on a few paths, such as StalePreview for stale_preview.
| Code | What it means | What to do |
|---|---|---|
bad_request | The request was not valid. | Use bandicot rpc, or fix the program that sent it. |
request_too_large | The request was over the size limit. | Send less, such as a smaller file. |
unsupported_protocol_version | The client speaks another protocol version. | Update the client or Bandicot. |
out_of_memory | The engine ran out of memory. | Close other work and retry; restart Bandicot if it repeats. |
not_implemented | This build does not do that yet. | Nothing to do in this version. |
not_data_owner | Another Bandicot app manages this data. | Use that app, or quit it and retry. |
definition_changed | The automation changed since it was shown. | Look at it again, then run it. |
model_disabled | The model is off in this profile's AI Gateway. | Enable it there, or pick another model. |
private_place | The path holds keys, sign-ins or browser profiles. | Nothing; the agent never opens those places. |
plan_limit_reached | The plan has no profile left. | Change the plan or remove a profile. |
PluginUnavailable | Bandicot cannot run this kind of plugin. | Use an agent, skill or hook plugin. |
PluginEmpty | The plugin has nothing to install. | A skill plugin needs a SKILL.md; a hook plugin needs a command. |
ProfileChanged | The profile changed since the delete preview. | Review it again before deleting. |
EntitlementUnavailable | This build cannot check plans. | Update Bandicot. |
StaleEntitlement | A newer plan is already on this Mac. | Nothing to do. |
InvalidEntitlement | The plan is not signed by Bandicot. | Sign in again. |
Forbidden | It belongs to another profile, account or device. | Switch to the right profile or account. |
UnknownMethod | The engine has no such method. | Update Bandicot; bandicot methods lists what it has. |
UnknownSkill, UnknownAgent, UnknownTool | That skill, agent or tool is not installed for this profile. | Check its name in the / list. |
UnsupportedMcp | That prompt form is not supported. | Ask in plain words instead. |
Untrusted | The extension is not trusted yet. | Trust it first, then install it. |
StorageUnavailable | A file Bandicot needs could not be opened. | Check the disk and its permissions, then retry. |
OperationNotFound | The history entry is unknown. | Reload the history and retry. |
ExportCleanupFailed | An export failed and a partial folder may be left behind. | Delete the partial folder, then export again. |
NotFound | A backup request named a step the engine does not have. | Update Bandicot, or fix the program that sent it. |
SwapUnsupported | The disk cannot do the restore safely. | Restore on a Mac disk. |
Busy | A step is still finishing. | Try again in a moment. |
NoSuchRun | The run is unknown. | Refresh. |
RunConflict | Something is already running in that session. | Wait for it, or use another session. |
QueueFull | Too many messages are waiting. | Let the current work finish. |
TerminalRun | The run has ended. | Start a new run. |
IdempotencyConflict | The same request key was reused with different content. | Send it as a new request. |
StaleApproval | The approval is old or unknown. | Ask again. |
NoSuchSession | The session no longer exists. | Start a new one. |
SessionTooLarge | The session is too large to continue. | Start a new one. |
SessionCorrupt | The session file is damaged. | Start a new session. |
SessionTooNew | A newer Bandicot wrote this session. | Update Bandicot. |
PageTooLarge | The page asked for is too large. | Ask for fewer items. |
CursorGap | The reader fell behind the kept events. | Read again from the start. |
EpochChanged | Your captain changed since this view was read. | Nothing; it reads again. |
UnknownArtifact | No such artifact. | Refresh the list. |
ProviderUnavailable | The model's provider is not connected. | Connect it in Settings › Model. |
ProviderInUse | The provider is in use by the selected model or a profile. | Switch model first. |
NoDecisionModel | No decision model is set. | Pick one in Models or Settings › Capabilities. |
NoActiveSession | No session is open. | Open or start a session. |
InvalidParams | A value was missing or not accepted. | Check the request against bandicot methods. |
WriteFailed | A save failed. | Check the disk. |
KeychainUnavailable | The Keychain is locked. | Unlock the Mac. |
Canceled | The turn or call was stopped. | Nothing to do. |
BrowserUnavailable, BrowserFailed | The browser could not start or act. | Try again. |
RuntimeModified, ModelModified, ModelChecking | A local model or its runtime changed on disk. | See local models above. |
ContextOverflow | The conversation no longer fits the model. | Compact, or start a new session. |
stalled | The agent stopped repeating itself. | Correct the task and send again. |
Questions
What does RootOverlapsDataDirectory mean?
The folder contains Bandicot's own data, such as your home folder, so Versions cannot keep its history. Chat still works there; open a project folder inside it for version history.
Why does Bandicot say another app manages this data?
Bandicot and Bandicot Beta are both open and the other one owns the data. Do the work there, or quit it and try again.
Did Bandicot use a different model when mine failed?
No. When the chosen model cannot run, the turn says so and stops. No other model is used.