diff --git a/packages/js-sdk/src/envd/api.ts b/packages/js-sdk/src/envd/api.ts index 960a03ded6..201f5beed8 100644 --- a/packages/js-sdk/src/envd/api.ts +++ b/packages/js-sdk/src/envd/api.ts @@ -8,6 +8,7 @@ import { InvalidArgumentError, NotFoundError, NotEnoughSpaceError, + RateLimitError, formatSandboxTimeoutError, AuthenticationError, } from '../errors' @@ -38,7 +39,7 @@ export async function handleEnvdApiError(res: { case 404: return new NotFoundError(message) case 429: - return new SandboxError( + return new RateLimitError( `${res.response.status}: ${message}: The requests are being rate limited.` ) case 502: diff --git a/packages/js-sdk/src/envd/rpc.ts b/packages/js-sdk/src/envd/rpc.ts index 9ad34ec6e8..80670de04a 100644 --- a/packages/js-sdk/src/envd/rpc.ts +++ b/packages/js-sdk/src/envd/rpc.ts @@ -8,6 +8,7 @@ import { formatSandboxTimeoutError, InvalidArgumentError, NotFoundError, + RateLimitError, SandboxError, TimeoutError, } from '../errors' @@ -24,6 +25,10 @@ export function handleRpcError(err: unknown): Error { return new NotFoundError(err.message) case Code.Unavailable: return formatSandboxTimeoutError(err.message) + case Code.ResourceExhausted: + return new RateLimitError( + `${err.message}: Rate limit exceeded, please try again later.` + ) case Code.Canceled: return new TimeoutError( `${err.message}: This error is likely due to exceeding 'requestTimeoutMs'. You can pass the request timeout value as an option when making the request.` diff --git a/packages/python-sdk/e2b/__init__.py b/packages/python-sdk/e2b/__init__.py index 264fd5deee..f62b986e93 100644 --- a/packages/python-sdk/e2b/__init__.py +++ b/packages/python-sdk/e2b/__init__.py @@ -42,6 +42,7 @@ InvalidArgumentException, NotEnoughSpaceException, NotFoundException, + RateLimitException, SandboxException, TemplateException, TimeoutException, @@ -127,6 +128,7 @@ "GitUpstreamException", "InvalidArgumentException", "NotEnoughSpaceException", + "RateLimitException", "TemplateException", "BuildException", "FileUploadException", diff --git a/packages/python-sdk/e2b/envd/api.py b/packages/python-sdk/e2b/envd/api.py index 2c5670d5d0..7c400c0e82 100644 --- a/packages/python-sdk/e2b/envd/api.py +++ b/packages/python-sdk/e2b/envd/api.py @@ -7,6 +7,7 @@ AuthenticationException, InvalidArgumentException, NotEnoughSpaceException, + RateLimitException, format_sandbox_timeout_exception, ) @@ -50,7 +51,7 @@ def format_envd_api_exception(status_code: int, message: str): elif status_code == 404: return NotFoundException(message) elif status_code == 429: - return SandboxException(f"{message}: The requests are being rate limited.") + return RateLimitException(f"{message}: The requests are being rate limited.") elif status_code == 502: return format_sandbox_timeout_exception(message) elif status_code == 507: