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.

CodeWhat happenedWhat can be done
provider_usage_limitThe AI provider's usage limit was reached.It can run again once the limit resets, or with another plan or key.
provider_rate_limitedThe AI provider asked it to slow down.Try again in a few minutes.
provider_concurrency_limitThe AI provider allows no more runs at once.Try again when other runs have finished.
provider_balance_insufficientThe AI provider account has no credit left.Add credit with the provider, then try again.
provider_account_suspendedThe AI provider suspended the account.Only the provider can lift it.
provider_region_restrictedThe AI provider doesn't serve the bot's region.
provider_api_key_missingThe coding tool has no API key.Fix it on the bot's computer, then try again.
provider_api_key_invalidThe AI provider refused the API key.Fix it on the bot's computer, then try again.
provider_api_key_expiredThe API key has expired.Fix it on the bot's computer, then try again.
provider_auth_requiredThe coding tool needs to sign in again.Sign in on the bot's computer, then try again.
provider_permission_deniedThe AI provider refused the request: no permission.
provider_org_restrictedThe provider organization's settings don't allow this request.
provider_endpoint_invalidThe coding tool points at a provider address that doesn't answer.Fix it on the bot's computer, then try again.
provider_request_invalidThe AI provider rejected the request.
provider_model_not_foundThe chosen model doesn't exist at the provider.Choose another model on the bot's computer, then try again.
provider_model_unavailableThe chosen model is unavailable right now.Try again later; nothing needs changing in Deskfleet.
provider_model_not_allowedThe provider account isn't allowed to use the chosen model.Choose another model on the bot's computer, then try again.
provider_context_too_largeThe request was too large for the model.Ask for less in one turn, or use a model with a larger context.
provider_content_rejectedThe AI provider refused the content.
provider_response_invalidThe AI provider's answer couldn't be read.Try again later; nothing needs changing in Deskfleet.
provider_timeoutThe AI provider didn't answer in time.Try again later; nothing needs changing in Deskfleet.
provider_service_unavailableThe AI provider was unavailable.Try again later; nothing needs changing in Deskfleet.
provider_bad_gatewayThe AI provider was unavailable.Try again later; nothing needs changing in Deskfleet.
provider_network_errorThe bot couldn't reach the AI provider.Check the bot computer's network, then try again.
provider_tls_errorThe connection to the AI provider failed a security check.Check the bot computer's network or proxy, then try again.
provider_protocol_errorThe connection to the AI provider broke off.Try again later; nothing needs changing in Deskfleet.
provider_unknownThe AI provider returned an error.

The bot's computer · 9

Something on the computer the bot runs on stopped it.

CodeWhat happenedWhat can be done
runtime_offlineThe bot's computer went offline.Try again once it's back.
runtime_worker_not_runningThe bot's coding tool couldn't be reached on its computer.Check the tool on that computer, then try again.
runtime_worker_crashedThe bot's coding tool stopped before returning a result.Try again; if it repeats, check the tool on that computer.
runtime_credentials_unavailableThe bot couldn't read its saved credentials.Fix it on the bot's computer, then try again.
runtime_credentials_invalidThe bot's saved credentials were refused.Reconnect the bot, then try again.
runtime_cli_unavailableThe coding tool isn't installed, or couldn't start.Fix it on the bot's computer, then try again.
runtime_permission_deniedThe bot's computer refused an action it needed.Fix it on the bot's computer, then try again.
runtime_execution_timeoutThe bot ran out of time.Try again, or ask for less in one turn.
runtime_disk_unavailableThe 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.

CodeWhat happenedWhat can be done
workspace_missingThe bot's workspace folder is missing.Fix it on the bot's computer, then try again.
workspace_not_cleanThe bot's checkout had local changes, so it didn't run.
workspace_head_mismatchThe checkout wasn't at the Call's exact commit.
workspace_repository_unavailableThe repository couldn't be fetched.Try again later; nothing needs changing in Deskfleet.
workspace_revision_unavailableThe Call's commit couldn't be fetched; it may have been force-pushed away.
workspace_materialization_failedThe checkout couldn't be prepared on the bot's computer.
workspace_grant_invalidThe repository access for this run didn't match the requested work.
workspace_grant_expiredThe repository access for this run expired before the checkout.Try again; a new run gets new access.
workspace_timeoutFetching the repository took too long.Try again later; nothing needs changing in Deskfleet.
workspace_process_unavailableGit 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.

CodeWhat happenedWhat can be done
deskbot_migration_frozenDeskfleet was updating, so the run stopped.Try again after the update.
deskbot_migration_drainingDeskfleet was preparing an update, so no new work started.Try again after the update.
deskbot_lease_expired set by DeskfleetThe bot stopped answering, so its turn ended.
deskbot_lease_invalidThe bot's claim on this job was no longer valid.
deskbot_authorization_stopped set by DeskfleetThe Call reached one of its limits, so the run stopped.Start a new Call with higher limits.
deskbot_result_invalid set by DeskfleetDeskfleet 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_unsafeThe answer held something that can't be shared, such as a private path or a secret, so it wasn't kept.
deskbot_result_delivery_failedThe bot's answer couldn't be delivered.Try again later; nothing needs changing in Deskfleet.
deskbot_retry_exhausted set by DeskfleetIt didn't finish within the retries the Call allowed.
deskbot_unknownThe run failed for a reason the bot didn't report.

Stopped · 3

The run was stopped on purpose.

CodeWhat happenedWhat can be done
cancelled_by_owner set by DeskfleetStopped by the owner.
cancelled_by_policyStopped by a policy of this account.
deadline_exceeded set by DeskfleetThe 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.

CodeWhat happenedWhat can be done
bot_execution_timeoutThe bot ran out of time.Try again, or ask for less in one turn.
model_override_deniedThe bot's coding tool refused the model set for it.Choose another model on the bot's computer, then try again.
repository_grant_invalidThe repository access for this run didn't match the requested work.
repository_grant_expiredThe repository access for this run expired before the checkout.Try again; a new run gets new access.
repository_dns_failedThe bot couldn't reach GitHub.Check the bot computer's network, then try again.
repository_tls_failedThe connection to GitHub failed a security check.Check the bot computer's network or proxy, then try again.
repository_access_deniedGitHub refused the repository access for this run.
repository_unavailableThe repository couldn't be fetched.Try again later; nothing needs changing in Deskfleet.
repository_revision_unavailableThe Call's commit couldn't be fetched; it may have been force-pushed away.
repository_permission_deniedThe bot's computer couldn't write its checkout.Fix it on the bot's computer, then try again.
repository_connection_failedThe bot couldn't reach GitHub.Check the bot computer's network, then try again.
repository_git_failedGit failed while preparing the checkout.
repository_timeoutFetching the repository took too long.Try again later; nothing needs changing in Deskfleet.
repository_process_unavailableGit couldn't run on the bot's computer.Fix it on the bot's computer, then try again.
bot_answer_invalidThe bot's answer was malformed, so it wasn't kept.
bot_answer_unsafeThe answer held something that can't be shared, such as a private path or a secret, so it wasn't kept.
bot_cli_unavailableThe coding tool isn't installed, or couldn't start.Fix it on the bot's computer, then try again.
result_delivery_failedThe bot's answer couldn't be delivered.Try again later; nothing needs changing in Deskfleet.
bot_process_failedThe coding tool stopped with an error.