# Inngest v1.39.0 - Product: Inngest (https://whatsnew.fyi/product/inngest) - Vendor: Inngest - Date: 2026-07-28 - Version: v1.39.0 - Original notes: https://github.com/inngest/inngest/releases/tag/v1.39.0 - Permalink: https://whatsnew.fyi/product/inngest/releases/v1.39.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Add cancel run to the v2 REST API and CLI with POST /api/v2/runs/{run_id}/cancel - **added** — Add REST v2 rerun from step endpoint POST /v2/runs/{run_id}/rerun with fromStep payload support - **added** — Augment incoming AI metadata with cost estimates - **fixed** — Improve CLI timestamp argument handling - **fixed** — Use snapshots to handle map race access - **fixed** — Skip constraint lease on missing account - **fixed** — Fix race condition when creating workflow and checkpointing durable endpoint step - **fixed** — Recover from panics in event lifecycle listeners - **changed** — Add shard scanner boundary to queue refactoring - **changed** — Add scanner runtime to queue refactoring with updated Run signature and LeaseItem/ProcessItem interfaces - **changed** — Expose available worker count in queue - **added** — Add logging middleware for API - **changed** — Make cancellation deadline configurable - **added** — Add primitives for cross-backend run state migration ##### Release Notes - [#4638](https://github.com/inngest/inngest/pull/4638) feat(api): v2 api cancel run Adds cancel run to the v2 rest api and cli. `POST /api/v2/runs/{run_id}/cancel` `inngest api POST /api/v2/runs/{run_id}/cancel` - [#4645](https://github.com/inngest/inngest/pull/4645) feat(api): rest v2 rerun from step `POST /v2/runs/{run_id}/rerun` with payload: ```json { "fromStep": { "stepId": "fetch-user", "input": [ { "userId": "user_123" } ] } } ``` CLI equivalent: ``` inngest api --prod rerun \ --from-step "step 2" \ --input '[{"foo":"bar"}]' ``` ##### Migration Notes - [#4655](https://github.com/inngest/inngest/pull/4655) refactor(queue): add shard scanner boundary None ## Validation - go test -count=1 ./pkg/execution/queue - go test -run '^$' ./pkg/execution/state/redis_state - [#4665](https://github.com/inngest/inngest/pull/4665) refactor(queue): add scanner runtime Out-of-tree queue scanner implementations must update `Run(ctx, dispatch)` to `Run(ctx, runtime)`, use `runtime.Dispatch` to submit leased work, and may inspect `runtime.WorkerSemaphore` before scanning. Implementations that call `DispatchFunc` must handle the returned `DispatchedItem`; callers may ignore it, or wait on `Done()` with context cancellation or a timeout. Callers of `LeaseItem` must stop passing queue partitions and instead provide item metadata on `LeaseItemRequest`. Callers of `ProcessItem` must handle the new `(ProcessItemResult, error)` return shape. ## Validation - `go test ./pkg/execution/queue` - `go test ./tests/execution/queue` - `make lint` - [#4672](https://github.com/inngest/inngest/pull/4672) fix(executor): recover from panics in event lifecycle listeners ## Test Plan Added `TestRunEventLifecyclesRecoversFromListenerPanic` which verifies that: - A panicking listener is called and its panic is recovered - Subsequent listeners are still called despite the panic - Multiple invocations of `runEventLifecycles` work correctly even after a panic https://claude.ai/code/session_01P33HC2LRVTGmbdkEwUYEMu ##### Changelog ###### 🚀 Features - *(api)* Rest v2 rerun from step (#4645) - *(metadata)* Augment incoming ai metadata with cost estimates (#4661) - *(api)* V2 api cancel run (#4638) ###### 🐛 Bug Fixes - *(cli)* Improve cli timestamp arg handling (#4650) - Use snapshots to handle map race access (#4653) - *(queue)* Skip constraint lease on missing account (#4604) - Race creating workflow and checkpointing durable endpoint step (#4668) - *(executor)* Recover from panics in event lifecycle listeners (#4672) ###### 🚜 Refactor - *(queue)* Add shard scanner boundary (#4655) - *(queue)* Add scanner runtime (#4665) - *(queue)* Expose available worker count (#4666) ###### ⚙️ Miscellaneous Tasks - *(logging)* Add logging middleware for API (#4646) - Make cancellation deadline configurable (#4659) - *(state)* Add primitives for cross-backend run state migration (#4654)