Error handling depends on the surface. Do not assume every RevoEngine response uses the same envelope.
Most control-plane failures include an HTTP status, timestamp, and message. Validation and lifecycle operations may add a stable code, field details, or operation-specific metadata.
Endpoint runtime errors
Endpoint authors control part of the public contract. A component can deliberately return a status and body with api.throw(...), so an application should follow that Endpoint’s generated OpenAPI document.
Platform-level runtime failures commonly use:
Sandbox streams
For /v1/debug/stream and /v1/execute/stream, transport success does not imply execution success. A runtime failure is an error event followed by done with error: true. A successful stream has one result event followed by done.
If a stream or connection ends before a terminal event, treat the outcome as unknown when code could have mutated external state.
SDK errors
All SDK-specific errors extend RevoError and expose code, retryable, indeterminate, and optional statusCode/details.
Safe retry checklist
- Classify the operation as read-only, idempotent, or non-idempotent.
- Check durable state when dispatch may have reached the server.
- Reuse a business idempotency key where the target supports one.
- Retry only failures documented as retryable, with bounded exponential backoff and jitter.
- Stop on validation, authentication, authorization, and version conflicts until corrected.
For support, record the UTC timestamp, method/path, status, resource or execution identifier, and the x-revo-oid and x-revo-ver response headers. Redact tokens, secrets, signed URLs, and sensitive payload values. Last modified on September 5, 2026