Error codes

The stable E_ codes, where you can see them, and what they mean.

Errors carry a stable name that starts with E_. The CLI prints the message, and exits with a non-zero code. The name is what a program should match on. You can see it in the daemon's JSON responses on the socket, in the deny part of the audit log, and in the adapter protocol.

A crash loop is not an error code. An app in a crash loop is in the errored state. The reason is in the logs and in the daemon's status data.

Requests and apps

CodeMeaning
E_BAD_REQUESTMalformed JSON or an unknown request type.
E_PROTOCOL_VERSIONThe request's protocol is outside the supported range.
E_REQUEST_TOO_LARGEA request line over the size limit.
E_INVALID_SPECA spec failed validation. The message names the field.
E_INVALID_NAMEAn app name with a bad charset or length, or a reserved one.
E_INVALID_SELECTORA selector that cannot be parsed or is not allowed for the operation.
E_UNSUPPORTEDA feature that is not available: removed, or not built yet.
E_APP_NOT_FOUNDA selector matched nothing.
E_APP_EXISTSThe name is taken, or the app is already active.
E_BUILD_FAILEDThe build step failed.
E_SPAWN_FAILEDThe program did not resolve or could not be spawned.
E_CANCELLEDA pending start was cancelled by a stop or delete.
E_SHUTTING_DOWNThe daemon is shutting down.
E_BUSYAn app's mailbox stayed full.
E_TIMEOUTA bounded wait expired.

Dependencies

CodeMeaning
E_DEPENDENCY_MISSINGA dependency is not registered.
E_DEPENDENCY_CYCLEThe dependencies form a cycle. The message names it.
E_DEPENDENCY_FAILEDA dependency is stopped or errored, or failed while the app waited.
E_DEPENDENCY_TIMEOUTThe wait for dependencies passed depends_timeout.

Storage

CodeMeaning
E_DBA database error.
E_IOA file error.
E_STATE_INCOMPATIBLEStored state was written by an incompatible OxidePM.
E_SAVE_WOULD_EMPTYsave would replace a non-empty file with an empty one.
E_INTERNALA bug, or an internal task died. The daemon log has the details.

Policy

CodeMeaning
E_POLICY_DENIEDThe policy refused the request for this actor. The message names the tier, the actor and the apps.
E_PROTECTEDThe app is protected and the actor is not a person.
E_RATE_LIMITEDA non-human actor asked too often.
E_AUDIT_UNAVAILABLEA non-human actor's caution or dangerous request was refused because the audit log could not record it first.
E_DRY_RUN_UNSUPPORTEDA verb or command has no dry run.

Adapters

CodeMeaning
E_ADAPTER_MISSINGThe named adapter or runtime is not imported or not enabled.
E_ADAPTER_UNAVAILABLEEnabled but not running, failed, still starting, or its circuit breaker is open.
E_ADAPTER_TIMEOUTA call to an adapter timed out.
E_ADAPTER_CRASHEDThe adapter exited during a call.
E_ADAPTER_PROTOCOLThe adapter broke the protocol, or speaks another version.
E_ADAPTER_BUSYThe adapter's in-flight limit was reached.
E_ADAPTER_INVALIDA manifest, plan or name is invalid, or a command collides with a built-in one.
E_ADAPTER_TAMPEREDThe executable's SHA-256 no longer matches the one recorded at import.
E_CHECKSUM_MISMATCHA downloaded file does not match the checksum published for it.
E_SIGNATURE_INVALIDA signature is wrong.
E_INDEX_STALEThe index is expired or older than the last one seen.