TabSailTabSail

Error codes and recovery

Choose a recovery action using the structured error code rather than HTTP status alone.

HTTP failures return error.code, message, retryable, and requestId. Responses also include X-Request-Id; retryable rate/capacity failures include Retry-After.

CodeMeaningRecovery
UNAUTHENTICATEDMissing, invalid, or revoked project credentialCorrect backend configuration
VALIDATION_ERROR / INVALID_JSON / INVALID_REQUESTUnsupported or malformed inputCorrect the request; do not retry unchanged
INSUFFICIENT_CREDITSNot enough unreserved credits for the requested lifetimeFund the account or release reservations
BILLING_FROZENNew use is blocked by billing stateResolve with the instance operator
TENANT_CONCURRENCY_LIMITShared account allowance is occupiedRelease owned browsers or reduce concurrency
CREATE_RATE_LIMITEDToo many creation requestsHonor Retry-After; bounded capacity waiting can handle this
NO_CAPACITY / STARTUP_BUSYNo allocatable browser or startup slotRetry within a bounded deadline if appropriate
IDEMPOTENCY_CONFLICTSame key used with different parametersRecover the original request; use a new key only for new work
SESSION_NOT_READYOperation requires a ready browserWait for readiness and recheck state
SESSION_ENDEDBrowser session ended or expiredTreat the old browser as ended; create a new workflow if needed
CONTROLLER_UNAVAILABLEAutomation cannot control the browser nowInspect handoff/controller state
HANDOFF_UNAVAILABLE / HANDOFF_NOT_ACTIVEHandoff state does not allow the requestRefresh state and follow the handoff lifecycle
SESSION_FILES_UNAVAILABLEFiles cannot be accessed in this session stateRetrieve files while ready, before closure
FILE_TOO_LARGE / FILE_QUOTA_EXCEEDEDFile or session storage limit reachedReduce size or remove unneeded ready files
FEATURE_NOT_ENABLEDRequested optional capability is unavailableCheck the availability matrix

SDK errors

APIError contains a server failure. RequestTimeoutError and WaitTimeoutError describe local deadlines; they do not prove a remote operation was canceled.

ResultUnknownError means acceptance is uncertain and needs idempotent recovery or inspection. CleanupError means owned resource cleanup was not confirmed; preserve its recovery information.

Python's base exception is SDKError; TypeScript's is TabSailError. See the SDK references for the complete exported error classes.

On this page