Skip to main content
POST
Resolve escalation

Path Parameters

id
string
required

Escalation id (esc_<uuid>)

Body

application/json

The resolve callback body.

Deliberately a SUPERSET with defaults, because the deployed escalation destination does not send the field set this endpoint would most like. Its resume POST is {"source": "handoff", "handoff_id": "<id>", "answer": <str|null>}cleared and by are captured on ITS resolve API but are not forwarded to us (app/main.py:179 in the handoff repo).

So: cleared defaults to TRUE, because that callback fires only from the destination's resolve path and never on expiry — its arrival IS the human's "done" signal. resolved_by falls back to source, then to a constant. A runtime that DOES send the richer shape gets it honoured. This keeps the contract runtime-agnostic without requiring a change to a product we do not own.

answer
string | null

The human's answer, for a question.

cleared
boolean

Whether the human reports the wall actually cleared. Defaults true — see above.

resolved_by
string | null

Opaque label for who answered.

source
string | null

Accepted as a fallback for resolved_by — what the deployed destination actually sends.

Response

Settled, or a replay of an already-settled attempt

applied
boolean
required

true when THIS call settled the attempt; false for a replay or a late answer. Both are 200 — a redelivered callback is expected, not an error.

id
string
required
object
string
required
status
string
required