Skip to main content

    POST /harness/sessions/{sessionId}/interrupt/{interruptId}/resolve

    Resolve an interrupt

    Auth: required. Send an ivy_ API key (Authorization: Bearer ivy_… or X-Ivy-Api-Key), a Clerk session JWT (Authorization: Bearer …) or the Clerk __session cookie (browser sessions). See Authentication.

    Approve or reject a pending interrupt. The executing session must still be live (i.e., the /execute SSE stream is still open on the same warm serverless container). Resolving an interrupt for a completed or timed-out session returns 404 RUNTIME_NOT_FOUND.

    When modifiedArguments is provided the agent rewrites the tool call arguments via NL diff (Gemini Flash) before execution — falls back to original args on LLM failure.

    Request

    Path parameters

    sessionIdstring (uuid)

    Session UUID (UUIDv7 — time-ordered)

    interruptIdstring

    Interrupt ID from the interrupt.requested SSE event payload

    Request body

    approvedboolean

    Allow (true) or deny (false) the tool call

    notestring

    Optional human note attached to the decision, stored in the event log

    modifiedArgumentsobject

    Override tool arguments — agent performs NL-based diff rewrite before execution (falls back to original on LLM failure)

    Responses

    200 OK

    Interrupt resolved

    Response shape:

    okboolean
    interruptIdstring
    decisionenum ("approved" | "rejected")

    400 Bad Request

    Invalid request

    Response shape: object

    401 Unauthorized

    Authentication required

    Response shape: object

    403 Forbidden

    Session not owned by the authenticated caller

    Response shape: object

    404 Not Found

    No active runtime found for this session, or interrupt already resolved

    Response shape: object

    curl -X POST 'https://ivybiosciences.com/api/harness/sessions/{sessionId}/interrupt/{interruptId}/resolve' \
      -H "Authorization: Bearer $IVY_API_KEY" \
      -H 'Content-Type: application/json' \
      -d '{
      "approved": false
    }'

    Was this page helpful?

    Loading...