Inngest

Developer Tools

A durable execution platform for queues, background jobs and AI workflows.

Latest v1.41.1 · by InngestWebsiteinngest/inngest

Release activity

Release activity — 10 releases across 9 days since Jun 29, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Jun 29, 2026. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026
Monday1 release on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 20261 release on Aug 3, 2026No releases on Aug 10, 2026
TuesdayNo releases on Jun 30, 20261 release on Jul 7, 20261 release on Jul 14, 20262 releases on Jul 21, 20261 release on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026
WednesdayNo releases on Jul 1, 20261 release on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 20261 release on Aug 5, 2026
ThursdayNo releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 20261 release on Jul 30, 2026No releases on Aug 6, 2026
FridayNo releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026
SaturdayNo releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026

10 releases since Jun 29, 2026, busiest day 2

Changelog

v1.41.1

⚙️ Miscellaneous Tasks
  • (support) Add graphql-codegen to support app (#4701)
  • (e2e) Run more tests on Depot (#4710)
View originalPermalink
How v1.41.1 went

v1.41.0

Added 1
  • Add insights-backed AI dashboard
Changed 1
  • Nudge metadata usage in run details
Fixed 4
  • Prevent connection state regression during gateway draining
  • Queue operations spanning multiple shards now tolerate unavailable shards and continue returning results from healthy shards
  • Shard-group workers continue trying healthy lease candidates when another shard is unavailable
  • Make lease renewal idempotent after lost ACKs
Release Notes
  • #4688 fix(queue): isolate unavailable shards

    Queue operations spanning multiple shards now tolerate unavailable shards and continue returning results from healthy shards. Shard-group workers also continue trying healthy lease candidates when another shard is unavailable.

Changelog
🚀 Features
  • (ai-overview) Add insights-backed AI dashboard (#4662)
  • (ui) Nudge metadata usage in run details (#4683)
🐛 Bug Fixes
  • (connect) Prevent connection state regression during gateway draining (#4685)
  • (queue) Isolate unavailable shards (#4688)
  • (connect) Make lease renewal idempotent after lost ACKs (#4687)
View originalPermalink
How v1.41.0 went

v1.40.0

Added 2
  • Generate mcp tools from rest api v2 to expose more tools that align closely with the v2 rest api and cli
  • Add v2 apps list endpoint
Fixed 2
  • Add support for falsy terns in expressions
  • Correct reversed errors.Is arguments for ErrQueueItemNotFound
Release Notes
  • #4674 feat(mcp): generate mcp tools from rest api v2

    Updates dev server mcp tools list to expose more tools that align more closely with the v2 rest api and cli

Changelog
🚀 Features
  • (mcp) Generate mcp tools from rest api v2 (#4674)
  • (api) Add v2 apps list endpoint (#4657)
🐛 Bug Fixes
  • (epxressions) Add support for falsy terns (#4676)
  • (queue) Correct reversed errors.Is arguments for ErrQueueItemNotFound (#4679)
View originalPermalink
How v1.40.0 went

v1.39.0

Added 5
  • Add cancel run to the v2 REST API and CLI with POST /api/v2/runs/{run_id}/cancel
  • Add REST v2 rerun from step endpoint POST /v2/runs/{run_id}/rerun with fromStep payload support
  • Augment incoming AI metadata with cost estimates
  • Add logging middleware for API
  • Add primitives for cross-backend run state migration
Changed 4
  • Add shard scanner boundary to queue refactoring
  • Add scanner runtime to queue refactoring with updated Run signature and LeaseItem/ProcessItem interfaces
  • Expose available worker count in queue
  • Make cancellation deadline configurable
Fixed 5
  • Improve CLI timestamp argument handling
  • Use snapshots to handle map race access
  • Skip constraint lease on missing account
  • Fix race condition when creating workflow and checkpointing durable endpoint step
  • Recover from panics in event lifecycle listeners
Release Notes
  • #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 feat(api): rest v2 rerun from step

    POST /v2/runs/{run_id}/rerun

    with payload:

    {
      "fromStep": {
        "stepId": "fetch-user",
        "input": [
          {
            "userId": "user_123"
          }
        ]
      }
    }
    

    CLI equivalent:

    inngest api --prod rerun <run_id> \
      --from-step "step 2" \
      --input '[{"foo":"bar"}]'
    
Migration Notes
  • #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 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 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)
View originalPermalink
How v1.39.0 went

v1.38.1

Fixed 1
  • Clarify run list commands and documentation
🐛 Bug Fixes
  • (api) Clarify run list commands and docs (#4647)
⚙️ Miscellaneous Tasks
  • (release) V1.38.1 (#4648)
View originalPermalink
How v1.38.1 went

v1.38.0

Added 2
  • Add v2 REST endpoints for listing function runs at GET /v2/runs and GET /v2/apps/{appId}/functions/{functionId}/runs with cursor pagination, time ranges, fields, status, public app/function IDs, deferred-run filters, ordering, and optional outputs
  • Enforce a maximum duration of one year for sleep operations and wait-for-event timeouts, returning an InngestErrTimeoutTooLong error when exceeded
Fixed 1
  • Fix the ordering and queue time of async opcodes when checkpointing is on for invoke, sleep, waitForEvent, waitForSignal, and Promise.all
Release Notes
  • #4608 fix: fix the ordering and queue time of async opcodes

    Fix the ordering and display of queueing delay for invoke, sleep, waitForEvent, waitForSignal, and Promise.all when checkpointing is on

  • #4621 feat(api): add v2 runs list endpoints

    Adds beta v2 REST endpoints for listing function runs:

    • GET /v2/runs
    • GET /v2/apps/{appId}/functions/{functionId}/runs

    Supports cursor pagination, time ranges and fields, status, public app/function IDs, deferred-run filters, ordering, and optional outputs.

  • #4628 feat: enforce one-year maximum duration for sleep and wait-for-event

    Inngest now enforces a maximum duration of one year for sleep operations and wait-for-event timeouts. Attempting to schedule a sleep or wait beyond one year will result in an InngestErrTimeoutTooLong error.

Migration Notes
Changelog
🚀 Features
  • (dashboard) Add Sandboxes waitlist (#4611)
  • (queue) Define grpc service interfaces for queue producer and consumer (#4610)
  • (queue) Route RequeueByJobID through producer (#4613)
  • Enforce one-year maximum duration for sleep and wait-for-event (#4628)
  • Normalize and instrument AI feature empty state pages (#4620)
  • (cli) Add API command usage metrics (#4642)
  • (api) Add v2 runs list endpoints (#4621)
🐛 Bug Fixes
  • Fix the ordering and queue time of async opcodes (#4608)
  • (queue) Expose partition size on job queue reader (#4619)
  • (insights ai) Attribute Insights cost/latency/token scores to their experiment variant (bump inngest 4.13.0) (#4641)
🚜 Refactor
  • (queue) Route processor dequeue and requeue through queue interfaces (#4639)
  • (runs) Consolidate oss runs queries (#4623)
📚 Documentation
  • EXE-2021 Add CLI callout to API docs (#4618)
  • Add guidance on Postgres retention for self-hosting (#4357)
⚙️ Miscellaneous Tasks
  • Add event lifecycle hooks (#4624)
  • Align auto-labels with Linear (#4634)
View originalPermalink
How v1.38.0 went

v1.37.0

Added 3
  • Add v2 REST scoring endpoint for recording named scores against function runs or individual steps
  • Extract granular token usage and request parameter information from extended traces for AI Metadata
  • Return lease usage from Constraint API lifecycle operations
Changed 3
  • Improve error response copy to better identify when errors do not come from the SDK but from intermediary proxies or app timeouts
  • Reduce sleep queue item payload size by approximately 30%
  • Make pause requeue extension configurable
Fixed 4
  • Display errored attempts without step as Function Error rather than Finalization in the trace view
  • Fix race condition that could cause a completed step to requeue despite already idempotently saving the outcome
  • Remove duplicate finalization span on errored runs in the trace view
  • Prevent dev server finalization group spans from duplicating in the trace UI when finalization request failed and was retried
Removed 1
  • Remove run-details-v4 flag and legacy RunDetailsV3, always render V4
Release Notes
  • #4453 feat(api): add v2 score endpoint

    Adds a v2 REST scoring endpoint for recording named scores against a function run or individual steps in a run. This

    POST /v2/runs/{runId}/scores

    with body:

    [
      {
        "name": "accuracy",
        "value": 0.95,
       "stepId": "step 1"
      }
    ]
    

    Scores are run scoped when stepId is omitted. Score values can be a number or boolean. Scores can be submitted in batches of up to 100. Experiment scores are supported at run level only (I copied this from the sdk, shout if we don't want to support this in the api) like so:

    [
      {
        "name": "accuracy",
        "value": 0.95,
        "experiment": {
          "id": "model-routing",
          "variant": "baseline"
        }
      }
    ]
    
  • #4566 fix(execution): improve copy for error responses that do not come from the SDK

    Augment responses to better identify when error responses do not come the SDK but rather intermediary proxies or app timeouts.

  • #4571 fix: Display errored attempts without step as Function Error rather than Finalization

    Errored attempts that never resolved to a step are displayed as "Function error" rather than "Finalization" in the trace view.

  • #4572 feat: bring AI Metadata extraction from extended traces to parity with JS SDK

    Extract granular token usage and request parameter information from extended traces for AI Metadata

  • #4591 perf: reduce sleep queue item payload size

    Reduces the queue memory footprint of sleeps by ~30%.

  • #4593 fix: lease race causing wasted work

    Fix race condition that could cause a completed step to requeue, despite already idempotently saving the outcome

  • #4598 fix(tracing): drop duplicate finalization span on errored runs

    Errored runs no longer show a duplicate "Finalization" span in the trace view when every attempt failed before the SDK responded.

  • #4600 fix(tracing): stop dev server finalization group spans from duplicating in the trace UI

    Dev server: runs whose finalization request failed and was retried no longer show a duplicate "Finalization" span in the trace view.

Migration Notes
  • #4597 refactor(ui): decompose traceRollup into focused helpers

    🤖 Generated with Claude Code

  • #4598 fix(tracing): drop duplicate finalization span on errored runs

    🤖 Generated with Claude Code

  • #4600 fix(tracing): stop dev server finalization group spans from duplicating in the trace UI

    🤖 Generated with Claude Code

  • #4603 test(constraintapi): add Redis Lua compatibility regression

    None

    Validation
    • go test ./pkg/constraintapi
    • go test ./tests/execution/queue -run 'TestLuaCompatibility/Basic Valkey/constraint API accepts empty usage arrays' -count=1 -v
    • go test ./tests/execution/queue -run 'TestLuaCompatibility/Basic Garnet/constraint API accepts empty usage arrays' -count=1 -v
    • Copied the moved regression case onto merge base fda3771de and confirmed the Valkey run fails for acquire, extend, and release with json: cannot unmarshal object into Go struct field ... cu.
Changelog
🚀 Features
  • (queue) Make pause requeue extension configurable (#4569)
  • (constraintapi) Return lease usage from lifecycle ops (#4596)
  • Bring AI Metadata extraction from extended traces to parity with JS SDK (#4572)
  • (traces) Remove run-details-v4 flag and legacy RunDetailsV3, always render V4 (#4584)
  • (api) Add v2 score endpoint (#4453)
🐛 Bug Fixes
  • (execution) Improve copy for error responses that do not come from the SDK (#4566)
  • Hydrate determinstic spans for sleep queue items on retries (#4592)
  • Lease race causing wasted work (#4593)
  • (constraintapi) Fix Constraint API marshaling (#4602)
  • (dashboard) Update Scores and Sessions nav icons (#4605)
  • (tracing) Stop dev server finalization group spans from duplicating in the trace UI (#4600)
  • Display errored attempts without step as Function Error rather than Finalization (#4571)
  • (tracing) Drop duplicate finalization span on errored runs (#4598)
  • (sessions) Sessions docs url (#4609)
🚜 Refactor
  • (queue) Subsume QueueManager APIs into other appropriate narrow interfaces (#4581)
  • (ui) Decompose traceRollup into focused helpers (#4597)
  • (queue) Break up queueProcessor (#4606)
⚡ Performance
  • Reduce sleep queue item payload size (#4591)
🧪 Testing
  • (constraintapi) Add Redis Lua compatibility regression (#4603)
  • Capture WaitForRunStatus status-transition history on timeout (#4447)
  • (dnscache) Test DNS cache against mock servers to reduce flakes (#4595)
⚙️ Miscellaneous Tasks
  • (e2e) Check that the dev server comes up (#4583)
  • (tygo-collect) Gofmt generated output (#4586)
  • Remove unused TotalSystemQueueDepth from QueueManager interface (#4574)
  • Cache our pnpm installation (#4588)
View originalPermalink
How v1.37.0 went

v1.36.0

Added 1
  • Differentiate between request and response model for AI Metadata extraction with ai.step.wrap or ai.step.infer
Changed 1
  • Rename AI Metadata field .model to .request_model and .system to .provider for AI Metadata extracted from extended traces, step.ai.wrap, and step.ai.infer to match OpenTelemetry GenAI standards
Security 1
  • Address Go vulnerabilities
Release Notes
  • #4516 fix: Update AI Metadata field names

    For AI Metadata extracted from extended traces, step.ai.wrap, and step.ai.infer, the .model field has been renamed to .request_model and .system has been renamed .provider to better match the OpenTelemetry GenAI standards.

  • #4518 feat: Differentiate between request and response model for AI Metadata extraction with ai.step.*

    • AI Metadata extracted with ai.step.wrap or ai.step.infer will now differentiate between request and response models
Migration Notes
  • #4516 fix: Update AI Metadata field names

    Insights queries that use AI Metadata fields of .model and .system should be updated to use .request_model and .provider, respectively.

Changelog
🚀 Features
  • Differentiate between request and response model for AI Metadata extraction with ai.step.* (#4518)
🐛 Bug Fixes
  • (release) Open homebrew-tap PRs as ready for review (non-draft) (#4576)
  • Update AI Metadata field names (#4516)
⚙️ Miscellaneous Tasks
  • (go) Move one unit test job to Depot (#4568)
🛡️ Security
  • Address Go vulnerabilities (#4570)
View originalPermalink
How v1.36.0 went

v1.35.0

Added 4
  • Add experiment endpoints to REST V2 API: GET /v2/experiments, GET /v2/apps/{app_id}/functions/{function_id}/experiments, and GET /v2/apps/{app_id}/functions/{function_id}/experiments/{experiment_id}
  • Add sessions endpoints to REST V2 API: GET /v2/sessions, GET /v2/sessions/{session_key}, and GET /v2/sessions/{session_key}/{session_id}/runs
  • Visualize numeric metrics using box plots in experiments
  • Show key queues setting in function view
Changed 5
  • Update experiments charts and layout to match new design
  • Add jitter to PartitionRequeue default case
  • Clean up QueueManager interface
  • Add timeout to backlog size in queue
  • Track partition processing that yielded 0 peeks
Fixed 2
  • Do not coalesce parallel steps for the V1 execution engine
  • Fix boxplot colors in experiments
Release Notes
  • #4504 feat(api): experiments api

    Adds experiment endpoints to REST V2 API and CLI: GET /v2/experiments GET /v2/apps/{app_id}/functions/{function_id}/experiments GET /v2/apps/{app_id}/functions/{function_id}/experiments/{experiment_id}

    Adds sessions endpoints to REST V2 API and CLI: GET /v2/sessions GET /v2/sessions/{session_key} GET /v2/sessions/{session_key}/{session_id}/runs

Changelog
🚀 Features
  • (experiments) Visualize numeric metrics using box plots (#4517)
  • (function-view) Show key queues setting (#4546)
  • (experiments) Update charts/layout to match new design (#4551)
  • (queue) Jitter PartitionRequeue default case (#4561)
  • (api) Experiments api (#4504)
🐛 Bug Fixes
  • Should not coalesce parallel steps for the V1 execution engine (#4538)
  • (experiments) Fix boxplot colors (#4542)
🚜 Refactor
  • (queue) Clean up QueueManager interface (#4541)
⚙️ Miscellaneous Tasks
  • (go) Drop key-queues test matrix dimension (#4552)
  • Upload test results to CodeCov to analyze flake rates (#4545)
  • Use a depot runner for linting (#4554)
  • (queue) Add timeout to backlog size (#4556)
  • Track partition processing that yielded 0 peeks (#4562)
  • Cleanup unused queue injections (#4564)
◀️ Revert
  • Always SavePending after parallel ops to coalesce discovery (#4021) (#4534)
View originalPermalink
How v1.35.0 went

v1.34.0

Added 1
  • Add search to /sessions/:sessionsKey route
Changed 1
  • Resolve shards by scope instead of account ID
Fixed 10
  • Rerun from step, including with the ability to update step inputs, working in cloud
  • Custom concurrency cache keys that were always account level
  • Support only OTel GenAI in Extended Traces AI Metadata Extractor by dropping support for Open Inference, Vercel AI SDK, and Langfuse
  • Display of extended traces for steps with multiple attempts
  • Enable rerun from step for all step types
  • Handle wrapped iterator errors in queue
Release Notes
  • #4182 fix: rerun from step

    Gets rerun from step, including with the ability to update step inputs, working in cloud. This already works in the oss dev server.

  • #4501 fix: bug where custom concurrency cache keys are always account level

    fixes a custom concurrency bug that could be lowering throughput

  • #4509 fix: Support only OTel GenAI in Extended Traces AI Metadata Extractor

    Changes AI Metadata processing for Extended Traces to behave more similarly to the JS SDK by dropping support for Open Inference, Vercel AI SDK, and Langfuse in favor of only OTel GenAI.

  • #4511 chore(release): for homebrew installed inngest-cli, use homebrew-tap for latest version

    Fix homebrew update notifier to use what's actually available in homebrew

  • #4523 fix: the display of extended traces for steps with multiple attempts

    Fixes the display of parenting of extended traces when there are multiple attempts for a step, each with its set of spans.

  • #4531 fix(rerun-from-step): enable rerun from step everywhere

    Enable support for rerun from step for all step types.

Changelog
🚀 Features
  • (sessions) Add search to /sessions/:sessionsKey route (#4499)
  • (sessions) Design feedback (#4524)
🐛 Bug Fixes
  • Custom concurrency cache keys (#4501)
  • Wrong experiments docs URL (#4503)
  • (queue) Handle wrapped iterator errors (#4507)
  • (support) Fix React hydration — UI interactions unresponsive (#4510)
  • (metadata) Show last attempt metadata for retry groups (#4513)
  • Support only OTel GenAI in Extended Traces AI Metadata Extractor (#4509)
  • (dashboard) Scoring formula slider interaction (#4484)
  • The display of extended traces for steps with multiple attempts (#4523)
  • Rerun from step (#4182)
  • (rerun-from-step) Enable rerun from step everywhere (#4531)
🚜 Refactor
  • (queue) Resolve shards by scope instead of acctID (#4475)
  • (session) Session ui empty state refactor (#4508)
⚙️ Miscellaneous Tasks
  • Bump SDK from 4.8.0 to 4.10.0 (#4496)
  • (release) Use homebrew_casks with goreleaser (#3462)
  • (sessions) Sessions UI feedback (#4500)
  • (release) For homebrew installed inngest-cli, use homebrew-tap for latest version (#4511)
  • Adding metrics for run duration (#4445)
View originalPermalink
How v1.34.0 went
View all

Discussion