Skip to content

NoAvailableKeyError

Defined in: core/src/key-pool.ts:70

No key can serve right now. retryAtMs = when the soonest one is back.

A ProviderError of kind rate that carries that moment as resetAtMs and retryAfterMs. As a plain Error it classified as rate only by its wording and carried no deadline anyone read, so a FallbackPool around the key pool benched it for its default minute, whatever the keys had said.

new NoAvailableKeyError(
label,
retryAtMs,
now
): NoAvailableKeyError;

Defined in: core/src/key-pool.ts:73

Parameter Type
label string
retryAtMs number
now number

NoAvailableKeyError

ProviderError.constructor

readonly optional body?: string;

Defined in: core/src/errors.ts:132

The provider’s own response body, truncated. It carries the actual reason, otherwise lost behind “400 status code (no body)”.

ProviderError.body


optional cause?: unknown;

Defined in: node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts:26

ProviderError.cause


readonly optional code?: string;

Defined in: core/src/errors.ts:121

ProviderError.code


readonly kind: ErrorKind;

Defined in: core/src/errors.ts:119

ProviderError.kind


message: string;

Defined in: node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts:1077

ProviderError.message


name: string;

Defined in: node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts:1076

ProviderError.name


readonly provider: string;

Defined in: core/src/errors.ts:118

ProviderError.provider


readonly optional resetAtMs?: number;

Defined in: core/src/errors.ts:126

Absolute reset of the binding limit. Can be days beyond Retry-After.

ProviderError.resetAtMs


readonly optional retryAfterMs?: number;

Defined in: core/src/errors.ts:124

Honoured when the provider said how long to wait (Retry-After, or Gemini’s RetryInfo.retryDelay).

ProviderError.retryAfterMs


readonly retryAtMs: number;

Defined in: core/src/key-pool.ts:71


readonly optional shouldRetry?: boolean;

Defined in: core/src/errors.ts:129

Explicit server directive (x-should-retry), overriding default classification.

ProviderError.shouldRetry


optional stack?: string;

Defined in: node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts:1078

ProviderError.stack


readonly optional status?: number;

Defined in: core/src/errors.ts:120

ProviderError.status


readonly optional window?: RateLimitWindow;

Defined in: core/src/errors.ts:127

ProviderError.window

get isBackupEligible(): boolean;

Defined in: core/src/errors.ts:167

boolean

ProviderError.isBackupEligible


get isTransient(): boolean;

Defined in: core/src/errors.ts:162

boolean

ProviderError.isTransient

static from(provider, err): ProviderError;

Defined in: core/src/errors.ts:173

Wrap anything thrown into a classified ProviderError. Already-wrapped errors pass through untouched, so classification happens exactly once.

Parameter Type
provider string
err unknown

ProviderError

ProviderError.from