Skip to Content
SDK ReferenceError Handling

Error Handling

The SDK provides typed error classes for different failure scenarios.

Error types

Error classWhen thrownHTTP status
LaunchGateErrorBase class for all SDK errors
AuthErrorInvalid or missing API key401
PaymentErrorMonthly run limit exceeded402
ValidationErrorInvalid request parameters400
NetworkErrorNetwork connectivity issues

Error properties

All error types extend LaunchGateError:

class LaunchGateError extends Error { code: string; // Machine-readable error code message: string; // Human-readable message hint?: string; // Suggested fix (when available) }

ValidationError includes additional detail:

class ValidationError extends LaunchGateError { details?: object; // Field-level validation errors }

Handling errors

import { LaunchGate, AuthError, PaymentError, ValidationError, NetworkError, } from "@launchgate/sdk"; const lg = new LaunchGate({ apiKey: process.env.LAUNCHGATE_API_KEY! }); try { const result = await lg.run("my-suite", { output: "..." }); } catch (error) { if (error instanceof AuthError) { // Invalid or revoked API key console.error("Auth failed:", error.message); } else if (error instanceof PaymentError) { // Monthly run limit exceeded — upgrade plan console.error("Limit reached:", error.message); } else if (error instanceof ValidationError) { // Bad request — check your parameters console.error("Validation:", error.message, error.details); } else if (error instanceof NetworkError) { // Network issue — the SDK already retried 3 times console.error("Network error:", error.message); } }

In most cases, you won’t need to catch errors explicitly. The SDK’s graceful degradation returns status: "skipped" when the API is unreachable, so your application continues running. Errors are only thrown for issues that require your attention (auth, payment, validation).

Retry behaviour

The SDK retries automatically for transient errors:

Error typeRetried?Reason
Network errorsYes (3x)Transient connectivity issues
5xx server errorsYes (3x)Server-side transient failures
429 rate limitYes (3x)Temporary rate limiting
401 auth errorsNoInvalid credentials won’t self-resolve
402 payment errorsNoRequires plan upgrade
400 validation errorsNoRequest must be fixed

After 3 failed retries on retriable errors, the SDK returns a "skipped" result rather than throwing.

Last updated on