Guide
Why a bot didn't answer.
When an owned bot's job in a Call ends without an answer, the Calls page says why in plain words and what can be done. Under "For checking" it also shows a code; this page explains all 78.
Where a code comes from
Most codes come from the bot's Connector, when its coding tool or its computer fails. More detail may be in the bot's log on that computer: by default in the bot's folder under ~/.deskbot/workers on a Mac (worker.log), or under %LOCALAPPDATA%\Deskbot\workers on Windows (deskbot-worker.log, or in the install folder for a single-bot install).
A bot can never claim the codes Deskfleet sets, and only a code its Connector puts first in a message counts, so a tool's own text can't pass for one.
Deskfleet sets a few codes itself, marked below: an owner's stop, a bot that went silent, a Call's time or another of its limits running out, retries used up, and a report it refused. A code keeps its meaning for good.
The AI provider · 27
The coding tool's provider refused or failed the request.
| Code | What happened | What can be done |
|---|---|---|
provider_usage_limit | The AI provider's usage limit was reached. | It can run again once the limit resets, or with another plan or key. |
provider_rate_limited | The AI provider asked it to slow down. | Try again in a few minutes. |
provider_concurrency_limit | The AI provider allows no more runs at once. | Try again when other runs have finished. |
provider_balance_insufficient | The AI provider account has no credit left. | Add credit with the provider, then try again. |
provider_account_suspended | The AI provider suspended the account. | Only the provider can lift it. |
provider_region_restricted | The AI provider doesn't serve the bot's region. | |
provider_api_key_missing | The coding tool has no API key. | Fix it on the bot's computer, then try again. |
provider_api_key_invalid | The AI provider refused the API key. | Fix it on the bot's computer, then try again. |
provider_api_key_expired | The API key has expired. | Fix it on the bot's computer, then try again. |
provider_auth_required | The coding tool needs to sign in again. | Sign in on the bot's computer, then try again. |
provider_permission_denied | The AI provider refused the request: no permission. | |
provider_org_restricted | The provider organization's settings don't allow this request. | |
provider_endpoint_invalid | The coding tool points at a provider address that doesn't answer. | Fix it on the bot's computer, then try again. |
provider_request_invalid | The AI provider rejected the request. | |
provider_model_not_found | The chosen model doesn't exist at the provider. | Choose another model on the bot's computer, then try again. |
provider_model_unavailable | The chosen model is unavailable right now. | Try again later; nothing needs changing in Deskfleet. |
provider_model_not_allowed | The provider account isn't allowed to use the chosen model. | Choose another model on the bot's computer, then try again. |
provider_context_too_large | The request was too large for the model. | Ask for less in one turn, or use a model with a larger context. |
provider_content_rejected | The AI provider refused the content. | |
provider_response_invalid | The AI provider's answer couldn't be read. | Try again later; nothing needs changing in Deskfleet. |
provider_timeout | The AI provider didn't answer in time. | Try again later; nothing needs changing in Deskfleet. |
provider_service_unavailable | The AI provider was unavailable. | Try again later; nothing needs changing in Deskfleet. |
provider_bad_gateway | The AI provider was unavailable. | Try again later; nothing needs changing in Deskfleet. |
provider_network_error | The bot couldn't reach the AI provider. | Check the bot computer's network, then try again. |
provider_tls_error | The connection to the AI provider failed a security check. | Check the bot computer's network or proxy, then try again. |
provider_protocol_error | The connection to the AI provider broke off. | Try again later; nothing needs changing in Deskfleet. |
provider_unknown | The AI provider returned an error. |
The bot's computer · 9
Something on the computer the bot runs on stopped it.
| Code | What happened | What can be done |
|---|---|---|
runtime_offline | The bot's computer went offline. | Try again once it's back. |
runtime_worker_not_running | The bot's coding tool couldn't be reached on its computer. | Check the tool on that computer, then try again. |
runtime_worker_crashed | The bot's coding tool stopped before returning a result. | Try again; if it repeats, check the tool on that computer. |
runtime_credentials_unavailable | The bot couldn't read its saved credentials. | Fix it on the bot's computer, then try again. |
runtime_credentials_invalid | The bot's saved credentials were refused. | Reconnect the bot, then try again. |
runtime_cli_unavailable | The coding tool isn't installed, or couldn't start. | Fix it on the bot's computer, then try again. |
runtime_permission_denied | The bot's computer refused an action it needed. | Fix it on the bot's computer, then try again. |
runtime_execution_timeout | The bot ran out of time. | Try again, or ask for less in one turn. |
runtime_disk_unavailable | The bot's computer ran out of disk space. | Fix it on the bot's computer, then try again. |
The checkout · 10
The bot couldn't prepare the exact commit the Call asked for.
| Code | What happened | What can be done |
|---|---|---|
workspace_missing | The bot's workspace folder is missing. | Fix it on the bot's computer, then try again. |
workspace_not_clean | The bot's checkout had local changes, so it didn't run. | |
workspace_head_mismatch | The checkout wasn't at the Call's exact commit. | |
workspace_repository_unavailable | The repository couldn't be fetched. | Try again later; nothing needs changing in Deskfleet. |
workspace_revision_unavailable | The Call's commit couldn't be fetched; it may have been force-pushed away. | |
workspace_materialization_failed | The checkout couldn't be prepared on the bot's computer. | |
workspace_grant_invalid | The repository access for this run didn't match the requested work. | |
workspace_grant_expired | The repository access for this run expired before the checkout. | Try again; a new run gets new access. |
workspace_timeout | Fetching the repository took too long. | Try again later; nothing needs changing in Deskfleet. |
workspace_process_unavailable | Git couldn't run on the bot's computer. | Fix it on the bot's computer, then try again. |
Deskfleet · 10
Deskfleet itself ended the run, or refused its answer.
| Code | What happened | What can be done |
|---|---|---|
deskbot_migration_frozen | Deskfleet was updating, so the run stopped. | Try again after the update. |
deskbot_migration_draining | Deskfleet was preparing an update, so no new work started. | Try again after the update. |
deskbot_lease_expired set by Deskfleet | The bot stopped answering, so its turn ended. | |
deskbot_lease_invalid | The bot's claim on this job was no longer valid. | |
deskbot_authorization_stopped set by Deskfleet | The Call reached one of its limits, so the run stopped. | Start a new Call with higher limits. |
deskbot_result_invalid set by Deskfleet | Deskfleet refused what the bot sent: it didn't match the Call's limits or its usage record. | Try again; if it repeats, check the Call's limits. |
deskbot_result_unsafe | The answer held something that can't be shared, such as a private path or a secret, so it wasn't kept. | |
deskbot_result_delivery_failed | The bot's answer couldn't be delivered. | Try again later; nothing needs changing in Deskfleet. |
deskbot_retry_exhausted set by Deskfleet | It didn't finish within the retries the Call allowed. | |
deskbot_unknown | The run failed for a reason the bot didn't report. |
Stopped · 3
The run was stopped on purpose.
| Code | What happened | What can be done |
|---|---|---|
cancelled_by_owner set by Deskfleet | Stopped by the owner. | |
cancelled_by_policy | Stopped by a policy of this account. | |
deadline_exceeded set by Deskfleet | The Call's time limit passed. |
More checkout and answer codes · 19
Connectors also send these, for the checkout and the answer. Several mean the same as a code above.
| Code | What happened | What can be done |
|---|---|---|
bot_execution_timeout | The bot ran out of time. | Try again, or ask for less in one turn. |
model_override_denied | The bot's coding tool refused the model set for it. | Choose another model on the bot's computer, then try again. |
repository_grant_invalid | The repository access for this run didn't match the requested work. | |
repository_grant_expired | The repository access for this run expired before the checkout. | Try again; a new run gets new access. |
repository_dns_failed | The bot couldn't reach GitHub. | Check the bot computer's network, then try again. |
repository_tls_failed | The connection to GitHub failed a security check. | Check the bot computer's network or proxy, then try again. |
repository_access_denied | GitHub refused the repository access for this run. | |
repository_unavailable | The repository couldn't be fetched. | Try again later; nothing needs changing in Deskfleet. |
repository_revision_unavailable | The Call's commit couldn't be fetched; it may have been force-pushed away. | |
repository_permission_denied | The bot's computer couldn't write its checkout. | Fix it on the bot's computer, then try again. |
repository_connection_failed | The bot couldn't reach GitHub. | Check the bot computer's network, then try again. |
repository_git_failed | Git failed while preparing the checkout. | |
repository_timeout | Fetching the repository took too long. | Try again later; nothing needs changing in Deskfleet. |
repository_process_unavailable | Git couldn't run on the bot's computer. | Fix it on the bot's computer, then try again. |
bot_answer_invalid | The bot's answer was malformed, so it wasn't kept. | |
bot_answer_unsafe | The answer held something that can't be shared, such as a private path or a secret, so it wasn't kept. | |
bot_cli_unavailable | The coding tool isn't installed, or couldn't start. | Fix it on the bot's computer, then try again. |
result_delivery_failed | The bot's answer couldn't be delivered. | Try again later; nothing needs changing in Deskfleet. |
bot_process_failed | The coding tool stopped with an error. |