Skip to content
Developer Preview

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.

  • attempt
  • maxAttempts
  • nextAttempt
  • reason
  • retryDelayMs
  • sessionId
  • sourceRange
  • turnId
  • viewCursor
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"
}