Skip to content

Releases: triggerdotdev/trigger.dev

trigger.dev v4.4.4

13 Apr 13:17
5ea36e0

Choose a tag to compare

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 Docker image: ghcr.io/triggerdotdev/trigger.dev:v4.4.4

Release notes

Read the full release notes: https://trigger.dev/changelog/v4-4-4

What's changed

Highlights

  • Add support for setting TTL (time-to-live) defaults at the task level and globally in trigger.config.ts, with per-trigger overrides still taking precedence (#3196)
  • Large run outputs can use the new API which allows switching object storage providers. (#3275)

CLI Improvements

  • Add platform notifications support to the CLI. The trigger dev and trigger login commands now fetch and display platform notifications (info, warn, error, success) from the server. Includes discovery-based filtering to conditionally show notifications based on project file patterns, color markup rendering for styled terminal output, and a non-blocking display flow with a spinner fallback for slow fetches. Use --skip-platform-notifications flag with trigger dev to disable the notification check. (#3254)

MCP Server improvements

  • Add get_span_details MCP tool for inspecting individual spans within a run trace. (#3255)
  • Span IDs now shown in get_run_details trace output for easy discovery
  • New API endpoint GET /api/v1/runs/:runId/spans/:spanId
  • get_query_schema — discover available TRQL tables and columns
  • query — execute TRQL queries against your data
  • list_dashboards — list built-in dashboards and their widgets
  • run_dashboard_query — execute a single dashboard widget query
  • whoami — show current profile, user, and API URL
  • list_profiles — list all configured CLI profiles
  • switch_profile — switch active profile for the MCP session
  • start_dev_server — start trigger dev in the background and stream output
  • stop_dev_server — stop the running dev server
  • dev_server_status — check dev server status and view recent logs
  • GET /api/v1/query/schema — query table schema discovery
  • GET /api/v1/query/dashboards — list built-in dashboards
  • --readonly flag hides write tools (deploy, trigger_task, cancel_run) so the AI cannot make changes
  • read:query JWT scope for query endpoint authorization
  • get_run_details trace output is now paginated with cursor support
  • MCP tool annotations (readOnlyHint, destructiveHint) for all tools
  • get_query_schema now requires a table name and returns only one table's schema (was returning all tables)
  • get_current_worker no longer inlines payload schemas; use new get_task_schema tool instead
  • Query results formatted as text tables instead of JSON (~50% fewer tokens)
  • cancel_run, list_deploys, list_preview_branches formatted as text instead of raw JSON
  • Schema and dashboard API responses cached to avoid redundant fetches
  • Adapted the CLI API client to propagate the trigger source via http headers. (#3241)
  • --readonly flag hides write tools (deploy, trigger_task, cancel_run) so the AI cannot make changes
  • get_run_details trace output is now paginated with cursor support
  • MCP tool annotations (readOnlyHint, destructiveHint) for all tools
  • get_query_schema now requires a table name and returns only one table's schema (was returning all tables)
  • get_current_worker no longer inlines payload schemas; use new get_task_schema tool instead
  • Query results formatted as text tables instead of JSON (~50% fewer tokens)
  • cancel_run, list_deploys, list_preview_branches formatted as text instead of raw JSON
  • Schema and dashboard API responses cached to avoid redundant fetches

Bug fixes

  • Fix dev CLI leaking build directories on rebuild, causing disk space accumulation. Deprecated workers are now pruned (capped at 2 retained) when no active runs reference them. The watchdog process also cleans up .trigger/tmp/ when the dev CLI is killed ungracefully (e.g. SIGKILL from pnpm). (#3224)
  • Fix --load flag being silently ignored on local/self-hosted builds. (#3114)
  • Fixed search_docs tool failing due to renamed upstream Mintlify tool (SearchTriggerDevsearch_trigger_dev)
  • Fixed list_deploys failing when deployments have null runtime/runtimeVersion fields (#3139)
  • Fixed list_preview_branches crashing due to incorrect response shape access
  • Fixed metrics table column documented as value instead of metric_value in query docs
  • Fixed dev CLI leaking build directories on rebuild — deprecated workers now clean up their build dirs when their last run completes
  • Fixed search_docs tool failing due to renamed upstream Mintlify tool (SearchTriggerDevsearch_trigger_dev)
  • Fixed list_deploys failing when deployments have null runtime/runtimeVersion fields (#3139)
  • Fixed list_preview_branches crashing due to incorrect response shape access
  • Fixed metrics table column documented as value instead of metric_value in query docs
  • Fixed dev CLI leaking build directories on rebuild — deprecated workers now clean up their build dirs when their last run completes

Server changes

These changes affect the self-hosted Docker image and Trigger.dev Cloud:

  • Add admin UI for viewing and editing feature flags (org-level overrides and global defaults). (#3291)

Other improvements:

  • Add allowRollbacks query param to the promote deployment API to enable version downgrades (#3214)

  • Add automatic LLM cost calculation for spans with GenAI semantic conventions. When a span arrives with gen_ai.response.model and token usage data, costs are calculated from an in-memory pricing registry backed by Postgres and dual-written to both span attributes (trigger.llm.*) and a new llm_metrics_v1 ClickHouse table that captures usage, cost, performance (TTFC, tokens/sec), and behavioral (finish reason, operation type) metrics. (#3213)

  • Add API endpoint GET /api/v1/runs/:runId/spans/:spanId that returns detailed span information including properties, events, AI enrichment (model, tokens, cost), and triggered child runs. (#3255)

  • Multi-provider object storage with protocol-based routing for zero-downtime migration (#3275)

  • Add IAM role-based auth support for object stores (no access keys required). (#3275)

  • Add platform notifications to inform users about new features, changelogs, and platform events directly in the dashboard. (#3254)

  • Add private networking support via AWS PrivateLink. Includes BillingClient methods for managing private connections, org settings UI pages for connection management, and supervisor changes to apply privatelink pod labels for CiliumNetworkPolicy matching. (#3264)

  • Reduce run start latency by skipping the intermediate queue when concurrency is available. This optimization is rolled out per-region and enabled automatically for development environments. (#3299)

  • Extended the search filter on the environment variables page to match on environment type (production, staging, development, preview) and branch name, not just variable name and value. (#3302)

  • Set application_name on Prisma connections from SERVICE_NAME so DB load can be attributed by service (#3348)

  • Fix transient R2/object store upload failures during batchTrigger() item streaming.

    • Added p-retry (3 attempts, 500ms–2s exponential backoff) around uploadPacketToObjectStore in BatchPayloadProcessor.process() so transient network errors self-heal server-side rather than aborting the entire batch stream.
    • Removed x-should-retry: false from the 500 response on the batch items route so the SDK's existing 5xx retry path can recover if server-side retries are exhausted. Item deduplication by index makes full-stream retries safe. (#3331)
  • Concurrency-keyed queues now use a single master queue entry per base queue instead of one entry per key. Prevents high-CK-count tenants from consuming the entire parentQueueLimit window and starving other tenants on the same shard. (#3219)

  • Reduce lock contention when processing large batchTriggerAndWait batches. Previously, each batch item acquired a Redis lock on the parent run to insert a TaskRunWaitpoint row, causing LockAcquisitionTimeoutError with high concurrency (880 errors/24h in prod). Since blockRunWithCreatedBatch already transitions the parent to EXECUTING_WITH_WAITPOINTS before items are processed, the per-item lock is unnecessary. The new blockRunWithWaitpointLockless method performs only the idempotent CTE insert without acquiring the lock. (#3232)

  • Strip...

Read more

trigger.dev v4.4.3

10 Mar 10:21
c0b6309

Choose a tag to compare

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 Docker image: ghcr.io/triggerdotdev/trigger.dev:v4.4.3

Release notes

Read the full release notes: https://trigger.dev/changelog/v4-4-3

What's changed

Improvements

  • Add syncSupabaseEnvVars to pull database connection strings and save them as trigger.dev environment variables (#3152)
  • Auto-cancel in-flight dev runs when the CLI exits, using a detached watchdog process that survives pnpm SIGKILL (#3191)

Server changes

These changes affect the self-hosted Docker image and Trigger.dev Cloud:

  • A new Errors page for viewing and tracking errors that cause runs to fail

    • Errors are grouped using error fingerprinting
    • View top errors for a time period, filter by task, or search the text
    • View occurrences over time
    • View all the runs for an error and bulk replay them (#3172)
  • Add sidebar tabs (Options, AI, Schema) to the Test page for schemaTask payload generation and schema viewing. (#3188)

All packages: v4.4.3

@trigger.dev/build, @trigger.dev/core, @trigger.dev/python, @trigger.dev/react-hooks, @trigger.dev/redis-worker, @trigger.dev/rsc, @trigger.dev/schema-to-json, @trigger.dev/sdk, trigger.dev

Contributors

Eric Allam, Matt Aitken, James Ritchie, Oskar Otwinowski

Full changelog: v4.4.2...v4.4.3

trigger.dev v4.4.2

04 Mar 09:52
e36b757

Choose a tag to compare

Upgrade

npx trigger.dev@latest update
pnpm dlx trigger.dev@latest update
yarn dlx trigger.dev@latest update
bunx trigger.dev@latest update 

Self-hosted Docker image: ghcr.io/triggerdotdev/trigger.dev:v4.4.2

Release notes

Read the full release notes: https://trigger.dev/changelog/v4-4-2

What's changed

Improvements

  • Add input streams for bidirectional communication with running tasks. Define typed input streams with streams.input<T>({ id }), then consume inside tasks via .wait() (suspends the process), .once() (waits for next message), or .on() (subscribes to a continuous stream). Send data from backends with .send(runId, data) or from frontends with the new useInputStreamSend React hook. (#3146)
  • Add PAYLOAD_TOO_LARGE error to handle graceful recovery of sending batch trigger items with payloads that exceed the maximum payload size (#3137)

Bug fixes

  • Fix slow batch queue processing by removing spurious cooloff on concurrency blocks and fixing a race condition where retry attempt counts were not atomically updated during message re-queue. (#3079)
  • fix(sdk): batch triggerAndWait variants now return correct run.taskIdentifier instead of unknown (#3080)

Server changes

These changes affect the self-hosted Docker image and Trigger.dev Cloud:

  • Two-level tenant dispatch architecture for batch queue processing. Replaces the
    single master queue with a two-level index: a dispatch index (tenant → shard)
    and per-tenant queue indexes (tenant → queues). This enables O(1) tenant
    selection and fair scheduling across tenants regardless of queue count. Improves batch queue processing performance. (#3133)

  • Add input streams with API routes for sending data to running tasks, SSE reading, and waitpoint creation. Includes Redis cache for fast .send() to .wait() bridging, dashboard span support for input stream operations, and s2-lite support with configurable S2 endpoint, access token skipping, and S2-Basin headers for self-hosted deployments. Adds s2-lite to Docker Compose for local development. (#3146)

  • Speed up batch queue processing by disabling cooloff and increasing the batch queue processing concurrency limits on the cloud:

    • Pro plan: increase to 50 from 10.
    • Hobby plan: increase to 10 from 5.
    • Free plan: increase to 5 from 1. (#3079)
  • Move batch queue global rate limiter from FairQueue claim phase to BatchQueue worker queue consumer for accurate per-item rate limiting. Add worker queue depth cap to prevent unbounded growth that could cause visibility timeouts. (#3166)

  • Fix a race condition in the waitpoint system where a run could be blocked by a completed waitpoint but never be resumed because of a PostgreSQL MVCC issue. This was most likely to occur when creating a waitpoint via wait.forToken() at the same moment as completing the token with wait.completeToken(). Other types of waitpoints (timed, child runs) were not affected. (#3075)

  • Fix metrics dashboard chart series colors going out of sync and widgets not reloading stale data when scrolled back into view (#3126)

  • Gracefully handle oversized batch items instead of aborting the stream.

    When an NDJSON batch item exceeds the maximum size, the parser now emits an error marker instead of throwing, allowing the batch to seal normally. The oversized item becomes a pre-failed run with PAYLOAD_TOO_LARGE error code, while other items in the batch process successfully. This prevents batchTriggerAndWait from seeing connection errors and retrying with exponential backoff.

    Also fixes the NDJSON parser not consuming the remainder of an oversized line split across multiple chunks, which caused "Invalid JSON" errors on subsequent lines. (#3137)

  • Require the user is an admin during an impersonation session. Previously only the impersonation cookie was checked; now the real user's admin flag is verified on every request. If admin has been revoked, the session falls back to the real user's ID. (#3078)

All packages: v4.4.2

@trigger.dev/build, @trigger.dev/core, @trigger.dev/python, @trigger.dev/react-hooks, @trigger.dev/redis-worker, @trigger.dev/rsc, @trigger.dev/schema-to-json, @trigger.dev/sdk, trigger.dev

Full changelog: v4.4.1...v4.4.2

trigger.dev@4.4.1

20 Feb 16:45
98bf706

Choose a tag to compare

Patch Changes

  • Add OTEL metrics pipeline for task workers. Workers collect process CPU/memory, Node.js runtime metrics (event loop utilization, event loop delay, heap usage), and user-defined custom metrics via otel.metrics.getMeter(). Metrics are exported to ClickHouse with 10-second aggregation buckets and 1m/5m rollups, and are queryable through the dashboard query engine with typed attribute columns, prettyFormat() for human-readable values, and AI query support. (#3061)
  • Updated dependencies:
    • @trigger.dev/build@4.4.1
    • @trigger.dev/core@4.4.1
    • @trigger.dev/schema-to-json@4.4.1

@trigger.dev/sdk@4.4.1

20 Feb 16:45
98bf706

Choose a tag to compare

Patch Changes

  • Add OTEL metrics pipeline for task workers. Workers collect process CPU/memory, Node.js runtime metrics (event loop utilization, event loop delay, heap usage), and user-defined custom metrics via otel.metrics.getMeter(). Metrics are exported to ClickHouse with 10-second aggregation buckets and 1m/5m rollups, and are queryable through the dashboard query engine with typed attribute columns, prettyFormat() for human-readable values, and AI query support. (#3061)
  • Updated dependencies:
    • @trigger.dev/core@4.4.1

@trigger.dev/schema-to-json@4.4.1

20 Feb 16:45
98bf706

Choose a tag to compare

Patch Changes

  • Updated dependencies:
    • @trigger.dev/core@4.4.1

@trigger.dev/rsc@4.4.1

20 Feb 16:45
98bf706

Choose a tag to compare

Patch Changes

  • Updated dependencies:
    • @trigger.dev/core@4.4.1

@trigger.dev/redis-worker@4.4.1

20 Feb 16:45
98bf706

Choose a tag to compare

Patch Changes

  • Updated dependencies:
    • @trigger.dev/core@4.4.1

@trigger.dev/react-hooks@4.4.1

20 Feb 16:45
98bf706

Choose a tag to compare

Patch Changes

  • Updated dependencies:
    • @trigger.dev/core@4.4.1

@trigger.dev/python@4.4.1

20 Feb 16:45
98bf706

Choose a tag to compare

Patch Changes

  • Updated dependencies:
    • @trigger.dev/sdk@4.4.1
    • @trigger.dev/build@4.4.1
    • @trigger.dev/core@4.4.1