unstale

npm / inngest

inngest

What changed in inngest 4, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-02.

5 breaking1 security8 new APIs and options4 behavior and defaults4 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.9 on npm

inngest 422 changes

Breaking changes 5

  • Sandboxes are destroyed by ID when their scope ends, including when a run is cancelled or times out; errors after destruction are not retried because retries could not use the sandbox.

    4.26.0release notes

  • Destroys the sandbox by ID when its scope ends, including on cancellation or timeout; errors after destruction are not retried.

    4.26.0release notes

  • Scores are sent as one per-name metadata kind with a { value } payload, requiring a server that accepts per-name score kinds.

    4.26.0release notes

  • SDK warnings are sent as one per-code metadata kind, requiring a server that accepts per-name warning kinds.

    4.26.0release notes

  • No longer accepts stepId because experiment scores must be run-scoped, as the REST API already enforces.

    4.26.0release notes

Security 1

  • The notes recommend using secrets on create for tokens, injecting workspace secrets without exposing them.

    4.26.0release notes

New APIs and options 8

  • Adds experimental command shims that let a handler run before a program in the sandbox, perform privileged work, run or refuse the command, and return a result.

    4.26.2release notes

  • Adds a shim configuration helper for providing settings to sandbox commands.

    4.26.2release notes

  • Experimental sandbox handles provide a command interface; non-zero exits throw, exitCodes can allow other codes, and getCommandError reads command details from a failed command.

    4.26.0release notes

  • Accepts exitCodes to allow non-zero command exit codes.

    4.26.0release notes

  • Experimental static middleware hook returns functions that serve() and connect() add to the app unless it already serves one with the same ID; nothing is added without the middleware on the client.

    4.26.0release notes

  • Reads the command, exit code, and output tails from a failed command that reaches a handler as a StepError.

    4.26.0release notes

  • Experimental API returns typed step and group globals that can be imported anywhere instead of passed around, including sandbox, fetch, and middleware-added tools.

    4.26.0release notes

  • Converts sandbox tools to name, description, and JSON Schema definitions shaped for Anthropic's tools parameter, without requiring manual Zod conversion.

    4.26.0release notes

Behavior and default changes 4

  • Commands with tools or shims can now run longer than five minutes.

    4.26.2release notes

  • Timeouts over five minutes run the command as a process that the steps follow; output.originalBytes on the result is then optional.

    4.26.0release notes

  • Sandbox commands appear as one [$] row each in traces, and command output is displayed as readable text.

    4.26.0release notes

  • Environment values passed to sandbox calls no longer appear in run traces; only variable names are recorded, while the sandbox still receives the real values.

    4.26.0release notes

Fixes and other changes 4

  • Re-creating functions with the same ID now replaces the old definition in client.funcs, fixing memory growth.

    4.26.1release notes

  • Calling connect() without functions now warns and uses the latest definition instead of throwing Duplicate function ID.

    4.26.1release notes

  • Ignores and warns about a returned stepId when the parent was deferred with an experiment, so scores land on the run read by the experiment view.

    4.26.0release notes

  • Sandboxes created with a plain step.sandbox.create() are left running for you to keep.

    4.26.0release notes