Skip to main content
Status: Developer preview — contract-stable per @nexislabs/ai-platform v1; not yet serving public traffic.
HTTP-level failures use RFC 9457 application/problem+json (AI_PLATFORM_ERROR_MEDIA_TYPE). A failure surfaced mid-stream instead arrives as a terminal request.failed event whose problem field is the same object. The reference client (AiPlatformClient) treats the problem body as best-effort: on a non-2xx response it tries to parse and validate a application/problem+json body; if that fails or is absent, it falls back to an error with message AI platform request failed (<status>) and a null problem. Do not assume every non-2xx response carries a valid problem body.

The Problem object

FieldError

Error codes

retryable on each response is authoritative. The guidance column reflects what the code’s name and the surrounding architecture imply about its typical cause — it is not a fixed status/retryability table encoded in the schema itself.

conflict vs. idempotency_replay vs. request.accepted.replayed

Three distinct signals exist for idempotency-key reuse, and the sources do not fully reconcile them:
  1. AiPlatformChatRequestV1/Execute request carries an idempotencyKey.
  2. On a matching replay, the design spec and this reference document request.accepted.replayed: true as the signal (event field, not an error).
  3. idempotency_replay is nonetheless a member of the shared error/problem code enum used by Problem.code.
Documented, not resolved: whether idempotency_replay fires for a concurrent in-flight duplicate (original request still running) while replayed:true is reserved for replaying a request whose original already reached a terminal state, or whether one of the two is legacy/unused vocabulary. conflict is unambiguous by contrast — the task instructions for this reference confirm mismatched-body replay maps to conflict.

Example

TypeScript