TurnRetryScheduledParams
turn/retryScheduled params: a durable
turn retry-scheduled fact folded — the failing model attempt’s scheduled
retry is observable BEFORE the turn terminates, so a streaming client can
render “attempt N/M · retrying in Ss · reason” instead of dead air.
Non-terminal: it never resolves a turn-wait. The delay is
the recorded scheduled backoff, never an absolute fire time — clients
derive any countdown locally. sourceRange cites the session stream’s
mirror of the task-lifecycle record.
Fields and variants
Section titled “Fields and variants”attemptmaxAttemptsnextAttemptreasonretryDelayMssessionIdsourceRangeturnIdviewCursor
Source
schema/msp/experimental/msp.schema.json#/types/TurnRetryScheduledParams
{ "description": "`turn/retryScheduled` params: a durable\nturn retry-scheduled fact folded — the failing model attempt's scheduled\nretry is observable BEFORE the turn terminates, so a streaming client can\nrender \"attempt N/M · retrying in Ss · reason\" instead of dead air.\nNon-terminal: it never resolves a turn-wait. The delay is\nthe recorded scheduled backoff, never an absolute fire time — clients\nderive any countdown locally. `sourceRange` cites the session stream's\nmirror of the task-lifecycle record.", "properties": { "attempt": { "description": "The attempt that failed (producer-normalized, >= 1).", "type": "integer" }, "maxAttempts": { "description": "The turn's model-retry chain bound.", "type": "integer" }, "nextAttempt": { "description": "The attempt about to run (producer contract: attempt < nextAttempt\n<= maxAttempts; not a schema constraint).", "type": "integer" }, "reason": { "description": "The recorded stopping reason through the shared task-detail\nnormalization (non-empty; capped at 160 characters).", "type": "string" }, "retryDelayMs": { "description": "The scheduled backoff delay in milliseconds, verbatim from the\ndurable fact.", "type": "integer" }, "sessionId": { "description": "The owning session.", "type": "string" }, "sourceRange": { "$ref": "#/$defs/SourceRange", "description": "The durable record this event folded from (the session stream's\nmirror of the retry-scheduled task status; `first == last`)." }, "turnId": { "description": "The running turn whose model attempt is being retried.", "type": "string" }, "viewCursor": { "description": "Opaque, strictly monotonic view cursor.", "type": "string" } }, "required": [ "attempt", "maxAttempts", "nextAttempt", "reason", "retryDelayMs", "sessionId", "sourceRange", "turnId", "viewCursor" ], "type": "object"}