Input streams for bidirectional task communication, batch queue performance improvements, and security hardening.
1 new feature, 2 improvements, 2 bug fixes, and 7 server changes.
Input Streams for Bidirectional Communication with Running Tasks
Tasks now support typed input streams for receiving data during execution, including the ability to suspend tasks while awaiting responses.
// streams.ts — define once, share everywhere
import { streams } from "@trigger.dev/sdk";
export const approval = streams.input<{ approved: boolean; reviewer: string }>({
id: "approval",
});
// task — suspend until a reviewer responds (frees compute while waiting)
const result = await approval.wait({ timeout: "7d" });
if (result.ok && result.output.approved) {
await publish(draft);
}
// backend — send data to the running task
await approval.send(runId, { approved: true, reviewer: "alice@example.com" });
Additional capabilities include .once() for non-suspending waits, .on() for persistent listeners (useful for cancel signals on AI tasks), and a useInputStreamSend React hook for frontend integration. (#3146)
Improvements
- Increased Batch trigger processing concurrency limits: Free plan 1 → 5, Hobby plan stays at 10, Pro plan 10 → 50. (#3079)
- Added
PAYLOAD_TOO_LARGEerror code for oversized batch trigger items to fail gracefully with pre-failed runs instead of aborting entire batches. (#3137)
Bug Fixes
- Fixed slow batch queue processing caused by spurious cooloff on concurrency blocks and race condition with non-atomic retry attempt count updates during message re-queue. (#3079)
- Fixed
batchTriggerAndWaitvariants returningunknownforrun.taskIdentifierinstead of correct values. (#3080)
Server Changes
Available in v4.4.2 Docker image and live on Trigger.dev Cloud:
- Two-level tenant dispatch replacing single master queue with two-level index for O(1) tenant selection and fair scheduling. (#3133)
- Server-side input streams support: API routes, SSE reading, waitpoint creation, and Redis caching for
.send()-to-.wait()bridging. Includes dashboard span support and s2-lite support. (#3146) - Batch queue processing concurrency limits increased with disabled cooloff. (#3079)
- Batch queue global rate limiter moved to per-item limiting with worker queue depth cap. (#3166)
- Fixed waitpoint race condition where runs could be blocked indefinitely due to PostgreSQL MVCC issue. (#3075)
- Oversized NDJSON batch items now emit as pre-failed runs with
PAYLOAD_TOO_LARGE. (#3137) - Impersonation sessions now verify real user admin status on every request. (#3078)
How to Upgrade
npx trigger.dev@latest update # npm
pnpm dlx trigger.dev@latest update # pnpm
yarn dlx trigger.dev@latest update # yarn
bunx trigger.dev@latest update # bun
Self-hosted: Update Docker image to ghcr.io/triggerdotdev/trigger.dev:v4.4.2.
Fetched June 3, 2026


