Skip to main content

format_sandbox_unavailable_exception

Map a 502/UNAVAILABLE answered by the proxy in front of envd: the sandbox was not found (killed or reached its timeout) is a SandboxNotRunningException; the sandbox running but envd’s port not open (e.g. its network is down) a SandboxUnreachableException; any other message (e.g. envd ending a stream because the connection to the sandbox was lost) a SandboxUnreachableException too, with the sandbox state reported as unknown.

SandboxException

Base class for all sandbox errors. Raised when a general sandbox exception occurs. Arguments:
  • status_code: HTTP status of the API response that produced this error, when there was one.

TimeoutException

Raised when a timeout occurs. The unavailable exception type is caused by sandbox timeout. The canceled exception type is caused by exceeding request timeout. The deadline_exceeded exception type is caused by exceeding the timeout for process, watch, etc. The unknown exception type is sometimes caused by the sandbox timeout when the request is not processed correctly.

InvalidArgumentException

Raised when an invalid argument is provided.

NotEnoughSpaceException

Raised when there is not enough disk space.

NotFoundException

Raised when a resource is not found. .. deprecated:: Use :class:FileNotFoundException or :class:SandboxNotFoundException instead. This class will be removed in the next major version.

FileNotFoundException

Raised when a file or directory is not found inside a sandbox.

SandboxNotFoundException

Raised when a sandbox is not found (e.g. it doesn’t exist or is no longer running).

SandboxNotRunningException

Raised when the sandbox is not running anymore: the proxy in front of it answered a request (or the health probe run after a request failed at the connection level) with the sandbox not found — it was killed, paused or reached its timeout. Retrying the request will not help; create or resume a sandbox. The split from SandboxUnreachableException is only as good as the proxy’s answer and the health probe: a sandbox that is gone but could not be asked about is a SandboxUnreachableException. Handlers that want every “sandbox is gone” case should catch both this class and SandboxNotFoundException (the control-plane API’s answer for a sandbox that does not exist). Subclass of TimeoutException, which this case surfaced as before.

SandboxUnreachableException

Raised when the sandbox could not be reached while it is not confirmed to be stopped: the proxy in front of the sandbox reports it running but envd’s port not open (e.g. the sandbox’s network is down), the proxy or envd answered with an unavailability the health probe could not resolve (e.g. the connection to the sandbox was lost mid-stream while the probe found it running), or a request failed at the connection level (the connection could not be established or was dropped mid-request) and the follow-up health probe got no answer from the sandbox either. A sandbox confirmed stopped (or paused) is a SandboxNotRunningException — but only as far as the probe can tell: a sandbox that is gone and could not be asked about surfaces here. This usually means the sandbox’s network is down, envd inside it is not up (yet), or a network issue between the client and the sandbox. Check the sandbox state with Sandbox.get_info(). Subclass of TimeoutException, which these cases surfaced as before.

AuthenticationException

Raised when authentication fails.

GitAuthException

Raised when git authentication fails. :deprecated: Run git with sandbox.commands.run() instead. The git module will be removed in the next major version.

GitUpstreamException

Raised when git upstream tracking is missing. :deprecated: Run git with sandbox.commands.run() instead. The git module will be removed in the next major version.

TemplateException

Exception raised when the template uses old envd version. It isn’t compatible with the new SDK.

RateLimitException

Raised when the API rate limit is exceeded.

ServiceBusyException

Raised when the API refused the operation because the service is temporarily busy (HTTP 503): no capacity to place a sandbox right now, or the node running the sandbox declined a request it cannot serve yet. Nothing was changed by the refused call: for example a refused pause leaves the sandbox running with its state intact, so the same call can be retried after a short wait. Like AuthenticationException and unlike the other API errors, this is not a SandboxException: it is raised for every 503 whatever the operation, so catch it explicitly. Arguments:
  • status_code: HTTP status of the API response: always 503.

BuildException

Raised when the build fails.

FileUploadException

Raised when the file upload fails.

VolumeException

Base class for all volume errors. Raised when general volume errors occur.

VolumeNotFoundException

Raised when a volume is not found.

VolumePathNotFoundException

Raised when a file or directory is not found inside a volume.

SecretException

Base class for all secret errors. Raised when general secret errors occur.

SecretNotFoundException

Raised when a secret is not found.