Deferred execution arrives and expression engines tighten up
May 11–17, 2026
Inngest shipped deferred functions and expanded its Insights querying; n8n released v2.21 with major VM expression engine fixes across multiple patch levels; and Trigger.dev sped up failure detection.
Deferred functions and richer observability at Inngest
The week's biggest architectural news comes from Inngest, which released deferred functions as an experimental feature in the JS SDK v4.4.0. Deferred functions let a workflow hand off work to be completed later without holding a connection open — useful for long-running side effects that don't need to block the caller. On the server side, v1.19.3 follows quickly on the heels of v1.19.4's scope improvements: its Docker image strips curl for security and patches several Debian CVEs, while also fixing a bug that could close Connect workers prematurely when persisted SDK replies were still in flight.
Observability also got a significant upgrade. The Insights feature now supports querying Runs, Steps, and StepAttempts as first-class datasources, letting teams trace execution flow at a finer granularity without jumping between screens. This turns Insights from a dashboard into a debugging tool for pinpointing why a particular step failed or which runs are consuming the most wall-clock time.
n8n's expression engine overhaul
n8n released v2.21.0 early in the week, but the story is the dense trail of patches that followed. Across 2.21.1, 2.21.2, and 2.21.3, the team hammered on the VM expression engine — the component that evaluates user-authored expressions in a sandboxed JavaScript environment. Three fixes stand out: nested arrays are now preserved correctly in output (which previously could silently flatten complex data structures), empty expressions resolve to empty strings instead of producing errors or null, and the AxiosHeaders instance is preserved when applying OpenAI vendor defaults, which matters for anyone piping AI model responses into subsequent nodes.
The same issues were backported to the LTS track: v2.20.7 carries the OpenAI header fix, and v2.20.8 brings the nested array preservation. A security bulletin release on the v1.x line (1.123.43) addresses 16 vulnerabilities in dependencies including fast-xml-builder and langsmith, a reminder that supply-chain hygiene isn't just a recent trend.
Faster failures at Trigger.dev, quieter networking at Temporal
Trigger.dev v4.4.6 closes a frustrating edge case: uncaught exceptions (say from a Redis client emitting "error" without a listener) no longer let runs hang until MAX_DURATION_EXCEEDED. The worker now fails the attempt immediately with the original error. The same release fixes a CPU-spinning bug in dev mode.
Over at Temporal, TypeScript SDK 1.17.2 disables the new DNS resolver load-balancing feature by default after it caused networking issues in some setups — a welcome retreat for anyone who hit unexpected connection drops after the previous SDK update.