Follow one run to a terminal state
Track the hosted run that was already accepted, then decide whether its output meets the task. Reading progress starts no new work and does not cancel an existing execution.
Before you read
Keep the original account, run ID, version and invocation key. If submission supplied no run ID, resolve the key through the invocation lookup before attempting a detail read.
Follow the same execution
- Read
GET /hvy/v1/loops/runs/{runId}using the returned UUID and owning session. Send no body or invocation key header on this detail read. - Compare the returned
id,loopIdandversionwith your retained identity. - If the status is
queuedorrunning, inspect again later without invoking. Closing the tab or reaching a client deadline does not stop accepted work. - For
completed, examineoutputagainst the reviewed artifact's expected result. A completed wrapper with unsuitable output is not task success. - For
failedorexpired, preserve the status and available result. A new invocation is new work, not recovery of that output. - For
uncertain, retain the original identity and seek reconciliation before starting another execution. Do not translate uncertainty into failure or non-execution.
Check retention
Save required output securely while it is available. Input and output expire after the documented retention deadline from enqueue, independently of the stored status. output:null can mean pending, expired or erased data; it does not establish that nothing ran.
If the read fails
For run_not_found, confirm the original account and UUID or resolve the retained key. For service errors, repeat the same read after recovery. Do not poll a fabricated ID or switch accounts to search for the run.
The run detail reference lists exact fields and recovery codes.
Keep operation identity without credentials
Use this personal recovery worksheet to retain non-secret identity. Replace its descriptive values with your own observations; it is not a service configuration or API request. Keep it private when identifiers or file locations are sensitive.
service: SERVICE_NAME
operation_id: OPERATION_ID
idempotency_key: ORIGINAL_KEY
request_body_file: path/to/original-request.json
version: EXACT_VERSION_IF_APPLICABLE
last_observed_state: STATE