2026-10-24: API 1.38
Safer side effects, lists that never skip a row, idempotency per mode, and two new warnings.
Safer side effects, lists that never skip a row, idempotency per mode, and two new warnings.
#Added
- api:
GET /v1/jobs/{id}?since_status=<status>withPrefer: waitanswers as soon as the job's status differs from the one you name, so a wait right after answering an input is not held. - api: Step records (
GET /v1/jobs/{id}/steps) carryiteration: a step that runs more than once in a job, in a loop or after a resume, keeps one record per run instead of overwriting the last. - api: The warning
pagination_incomplete: apaginatestep that cannot move on after reading some pages returns the pages it read, withcountanddetail. - api: The schedule skip reason
fire_failed: a fire that keeps failing past the missed window is recorded as skipped, and the schedule moves on. - dsl: Lint warning
W009: a top-levelextractnext to anextractstep that writesdata.
#Fixed
- api: A
side_effect: truestep that fails after its action was sent is never retried, healed, refreshed or escalated in the same run: the job parksside_effect_ambiguousand a person decides. - api: Every list is ordered by creation time, then id, so rows created in the same millisecond are no longer skipped at a page boundary.
GET /v1/batches/{id}/jobsreturns every page. - api: An
Idempotency-Keyis scoped to the organisation and the mode, so a test key and a live key never replay each other's job. A replay spends no credits, test-mode quota or rate limit, and a keyedPOST /v1/jobs/batchis replayed instead of created twice. - api:
PATCH /v1/schedules/{id}keeps thesecretinputs you leave out ofinputs;nullremoves one. - api: Breaking: A job's
webhook_urlthat is malformed or does not resolve answers422 validation_failedwithdetails.reason, as a webhook endpoint'surldoes, instead ofssrf_blocked. - api: A job whose worker is lost three times fails with
internalanddetails.reason: "worker_lost", and its credits are released, instead of being retried without end. - dsl: A program with a top-level
extractandextractstepsinto: "vars"returns itsdataagain.