Elektric
Docs

Errors & Limits

Stable errors, retry rules, and authoritative beta limits.

#Errors

Branch on HTTP status and stable type/code, never message text.

TypeCodeHTTPRetry?Action
authentication_errorinvalid_api_key401NoCheck the project key.
invalid_request_errorinvalid_request400NoCorrect the request.
billing_errorinsufficient_balance402NoAdd funds or review the cap.
rate_limit_errorrate_limit_exceeded429YesHonor Retry-After; add jitter.
timeout_errorrequest_timeout408/504YesRetry safely with backoff.
service_unavailable_errorservice_unavailable503YesRetry with backoff.
invalid_request_errorasset_expired400/404NoCreate or upload a new Asset.
internal_errorinternal_error500MaybeRecord Request ID; retry if safe.

#Retry rules

Honor Retry-After and reset headers. Use bounded exponential backoff with jitter.

#Idempotency and cancellation

OperationIdempotencyCancellation
Chat/synchronous inferenceNo key; retries may duplicate work.Client abort does not prove upstream cancellation.
Media generationVideo supports a key; other media does not document one.Started work may remain billable.
JobsPolls are safe metadata reads.Cancellation is best effort.
StreamingA retry creates a new request.Generated usage may be billed.

#Authoritative beta limits

CapabilityLimit
Project request rate60/min; burst 20/10 sec
Concurrent inference10/project
Chat body8 MiB
Messages256; 256 KiB each
Requested output32,768 tokens
Temporary files1 hour; 100 live/project
Knowledge upload16 MiB/source
Video inputMP4; 10 MiB; 5 minutes
Audio transcription20 MiB
Realtime10 minutes; 1-minute idle; 2 concurrent
Realtime frames16 KiB text; 64 KiB audio
AssetsTemporary; project-scoped
JobsProject-scoped; terminal after completion/failure/cancel

All project keys share these limits. GET /v1/limits returns effective policy and spend.