Trigger.dev Node 21 warning: which Node runs the Sume SDK
Trigger.dev v4.6.1 added Node.js 21 deprecation warnings. The Sume TypeScript SDK needs Node 18 or later, so tasks on Node 22 or newer are fine.

If Trigger.dev warns that your task runs on Node 21, move the task to Node 22 or newer; @sume-com/sdk needs Node 18 or later, so it runs there without changes. The warning concerns the Node version, not the Sume client.
The Trigger.dev change
The Trigger.dev changelog lists v4.6.1, dated Sep 15, 2026, with an entry covering new CLI commands for projects, runs and env management, Node.js 21 deprecation warnings, and an MCP server fix. The page as read does not give a removal date in that entry, so check the current changelog before planning a cutover.
| Item | Detail |
|---|---|
| Version | v4.6.1 |
| Date | Sep 15, 2026 |
| Entry | CLI commands for projects, runs and env management; Node.js 21 deprecation warnings; MCP server tools/list crash fix |
What the Sume SDK needs
The Sume SDK page says the package has no runtime dependencies and needs fetch and WebCrypto: Node 18+, Bun, Deno or Cloudflare Workers. Node 21 is above that floor, and so are 22 and later. Moving a task off Node 21 therefore does not require a different SDK version.
Check node --version inside the task image, not on your laptop, since the runtime that matters is the one the task builds.
import { createSumeClient } from "@sume-com/sdk";
const client = createSumeClient({
apiKey: process.env.SUME_API_KEY!,
});
console.log(process.version);Keep long renders out of the task body
Video jobs routinely run longer than a short task should wait. Submit with mode: "async" and an Idempotency-Key, store the job id, and let a webhook or a later task read the result. waitForJob polls a generation job, and Sume docs note that a client-side timeout does not cancel the job.
If a task is retried by the platform, a stable Idempotency-Key makes the retried submit return the original job instead of billing again.
- Run tasks on Node 22 or newer.
- Store the Sume job id before waiting.
- Use a stable Idempotency-Key per logical request.
- Keep the API key server-side only.
Sources
Related posts
More in Developers
- Trigger.dev public tokens: keep the Sume key server-side
Trigger.dev v4.6.2 hardened authorization for public tokens. Whatever token your browser holds, a Sume API key must never be one of them. Here is the split.
- Estimate a Sume TTS bill in Python before you submit: count characters
Sume TTS is $0.0475 per 1,000 characters, spaces and punctuation included. A small Python function prices a script and flags ones near the limits.
- TTS 400: Provide exactly one of transcript_source or transcript
This 400 means the TTS body had both transcript and transcript_source, or neither. Send exactly one, plus a voice, and re-run.
- TTS 400 asking for voice.id or avatar_id / avatar_handle: the fix
The TTS call needs a voice: set voice.id, or a top-level avatar_id or avatar_handle. Without one the request is rejected before any audio is made.
Written by Sume