Trigger.dev Release Notes
Last updated: Apr 16, 2026
- Apr 13, 2026
- Date parsed from source:Apr 13, 2026
- First seen by Releasebot:Apr 16, 2026
Trigger.dev v4.4.4
Trigger.dev releases task-level and global TTL defaults, multi-provider object storage with zero-downtime migration, and a bigger MCP and CLI upgrade with new tools, platform notifications, span inspection, and multiple bug fixes.
2 new features, 11 new MCP tools, 6 bug fixes, and 15 server changes.
Highlights
Task-level and global TTL defaults
You can now set TTL (time-to-live) defaults at the task level in your task definition and globally in trigger.config.ts. If a run isn't dequeued within the configured window, it expires and never executes. Per-trigger overrides still take precedence over both.
Set ttl: 0 on a task to opt out of the global default entirely. See trigger.config.ts for all configuration options. (#3196)
Multi-provider object storage for large run outputs
Large run outputs now use a new storage API that supports switching object storage providers with zero-downtime migration via protocol-based routing. IAM role-based authentication is also supported, so no access keys are required. (#3275)
CLI improvements
- Platform notifications: the trigger dev and trigger login commands now fetch and display notifications (info, warn, error, success) from the server with color markup rendering. Discovery-based filtering shows notifications based on your project file patterns. Use --skip-platform-notifications to disable. (#3254)
MCP server improvements
New tools
- get_span_details — inspect individual spans within a run trace, including attributes, timing, events, and AI enrichment (model, tokens, cost). Span IDs are now shown in get_run_details trace output for easy discovery. (#3255)
- 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 the 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
Improvements
- --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
- get_query_schema now requires a table name and returns only that table's schema
- get_current_worker no longer inlines payload schemas — use the 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
- MCP tool annotations (readOnlyHint, destructiveHint) added to all tools
- read:query JWT scope added for query endpoint authorization
- CLI API client now propagates the trigger source via HTTP headers (#3241)
Bug fixes
- Fix dev CLI leaking build directories on rebuild. Deprecated workers are now pruned (capped at 2 retained) when no active runs reference them, and the watchdog cleans up .trigger/tmp/ when killed ungracefully (e.g. SIGKILL from pnpm). (#3224)
- Fix --load flag being silently ignored on local and self-hosted builds. (#3114)
- Fixed search_docs MCP tool failing due to a renamed upstream Mintlify tool (SearchTriggerDev → search_trigger_dev).
- Fixed list_deploys MCP tool failing when deployments have null runtime or runtimeVersion fields. (#3139)
- Fixed list_preview_branches MCP tool crashing due to incorrect response shape access.
- Fixed metrics TRQL table column documented as value instead of metric_value.
Server changes
These changes are included in the v4.4.4 Docker image and are already live on Trigger.dev Cloud:
- Add admin UI for viewing and editing feature flags with org-level overrides and global defaults. (#3291)
- Add allowRollbacks query param to the promote deployment API to support version downgrades. (#3214)
- Automatic LLM cost calculation for spans with GenAI semantic conventions. Costs are calculated from an in-memory pricing registry and written to span attributes trigger.llm.* and a new llm_metrics_v1 ClickHouse table capturing usage, cost, latency, and finish reason. (#3213)
- New GET /api/v1/runs/:runId/spans/:spanId endpoint returning span properties, events, AI enrichment, and triggered child runs. (#3255)
- Multi-provider object storage with protocol-based routing for zero-downtime migration. Adds IAM role-based auth for object stores (no access keys required). (#3275)
- Platform notifications for informing users about new features and platform events directly in the CLI and dashboard. (#3254)
- Private networking support via AWS PrivateLink. Includes BillingClient methods for managing connections, org settings UI for connection management, and supervisor pod labels for CiliumNetworkPolicy matching. (#3264)
- Reduce run start latency by skipping the intermediate queue when concurrency is available, rolled out per-region and enabled automatically for development environments. (#3299)
- Environment variable page search now matches 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 for DB load attribution by service. (#3348)
- Add p-retry (3 attempts, 500ms–2s exponential backoff) around object store uploads in BatchPayloadProcessor and remove x-should-retry: false from batch 500 responses so the SDK's existing retry path can recover. (#3331)
- Concurrency-keyed queues now use a single master queue entry per base queue instead of one per key, preventing high-CK-count tenants from starving others on the same shard. (#3219)
- Reduce lock contention when processing large batchTriggerAndWait batches by removing the per-item Redis lock acquisition. (#3232)
- Strip secure query parameter from QUERY_CLICKHOUSE_URL before passing to the ClickHouse client, fixing a startup crash with Error: Unknown URL parameters: secure. (#3204)
- Fix dev environment selection for teams with multiple members: now filters DEVELOPMENT environments by orgMember.userId to ensure the logged-in user's dev environment is returned. (#3273)
How to upgrade
Update the trigger.dev/* packages to v4.4.4 using your package manager:
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 # bunSelf-hosted users: update your Docker image to ghcr.io/triggerdotdev/trigger.dev:v4.4.4.
Original source Report a problem - Apr 13, 2026
- Date parsed from source:Apr 13, 2026
- First seen by Releasebot:Apr 16, 2026
trigger.dev v4.4.4
Trigger.dev ships v4.4.4 with TTL defaults, multi-provider object storage, platform notifications, richer MCP and query tools, private networking via AWS PrivateLink, and performance and reliability fixes across the CLI, server, and self-hosted stack.
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 # bunSelf-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 (SearchTriggerDev → search_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 (SearchTriggerDev → search_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 secure query parameter from QUERY_CLICKHOUSE_URL before passing to ClickHouse client. This was already done for the main and logs ClickHouse clients but was missing for the query client, causing a startup crash with Error: Unknown URL parameters: secure. (#3204)
Fix OrganizationsPresenter.#getEnvironment matching the wrong development environment on teams with multiple members. All dev environments share the slug "dev", so the previous find by slug alone could return another member's environment. Now filters DEVELOPMENT environments by orgMember.userId to ensure the logged-in user's dev environment is selected. (#3273)
All packages: v4.4.4
@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, Oskar Otwinowski, Matt Aitken, James Ritchie, @nicktrn, Saadi Myftija, @D-K-P, @isshaddad, github-actions[bot], @chengzp, Dinko Osrecki
Full changelog: v4.4.3...v4.4.4
Original source Report a problem All of your release notes in one feed
Join Releasebot and get updates from Trigger.dev and hundreds of other software products.
- Apr 13, 2026
- Date parsed from source:Apr 13, 2026
- First seen by Releasebot:Apr 16, 2026
v.docker.4.4.4: chore: release v4.4.4 (#3228)
Trigger.dev ships major platform and MCP upgrades, adding task TTL defaults, AI prompt management, richer span inspection, platform notifications, private networking support, and faster, more efficient query and CLI workflows. It also brings multiple bug fixes and reliability improvements.
Summary
12 new features, 59 improvements, 17 bug fixes.
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)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)Add get_span_details MCP tool for inspecting individual spans within a run trace.
(#3255)New get_span_details tool returns full span attributes, timing, events, and AI enrichment (model, tokens, cost, speed)
Span IDs now shown in get_run_details trace output for easy discovery
New API endpoint GET /api/v1/runs/:runId/spans/:spanId
New retrieveSpan() method on the API client
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)Propagate run tags to span attributes so they can be extracted server-side for LLM cost attribution metadata.
(#3213)New get_span_details tool returns full span attributes, timing, events, and AI enrichment (model, tokens, cost, speed)
Span IDs now shown in get_run_details trace output for easy discovery
New API endpoint GET /api/v1/runs/:runId/spans/:spanId
New retrieveSpan() method on the API client
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 fetchesAdd optional hasPrivateLink field to the dequeue message organization object for private networking support
(#3264)Define and manage AI prompts with prompts.define(). Create typesafe prompt templates with variables, resolve them at runtime, and manage versions and overrides from the dashboard without redeploying.
(#3244)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 (SearchTriggerDev → search_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 (SearchTriggerDev → search_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 completesServer 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)AI prompt management dashboard and enhanced span inspectors.
Prompt management:
Prompts list page with version status, model, override indicators, and 24h usage sparklines
Prompt detail page with template viewer, variable preview, version history timeline, and override editor
Create, edit, and remove overrides to change prompt content or model without redeploying
Promote any code-deployed version to current
Generations tab with infinite scroll, live polling, and inline span inspector
Per-prompt metrics: total generations, avg tokens, avg cost, latency, with version-level breakdownsAI span inspectors:
Custom inspectors for ai.generateText, ai.streamText, ai.generateObject, ai.streamObject parent spans
ai.toolCall inspector showing tool name, call ID, and input arguments
ai.embed inspector showing model, provider, and input text
Prompt tab on AI spans linking to prompt version with template and input variables
Compact timestamp and duration header on all AI span inspectorsAI metrics dashboard:
Operations, Providers, and Prompts filters on the AI Metrics dashboard
Cost by prompt widget
"AI" section in the sidebar with Prompts and AI Metrics linksOther improvements:
Resizable panel sizes now persist across page refreshes
Fixed <div> inside <p> DOM nesting warnings in span titles and chat messages
(#3244)Add allowRollbacks query param to the promote deployment API to enable version downgrades
(#3214)Pre-warm compute templates on deploy for orgs with compute access. Required for projects using a compute region, background-only for others.
(#3114)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 secure query parameter from QUERY_CLICKHOUSE_URL before passing to ClickHouse client. This was already done for the main and logs ClickHouse clients but was missing for the query client, causing a startup crash with Error: Unknown URL parameters: secure.
(#3204)Fix OrganizationsPresenter.#getEnvironment matching the wrong development environment on teams with multiple members. All dev environments share the slug "dev", so the previous find by slug alone could return another member's environment. Now filters DEVELOPMENT environments by orgMember.userId to ensure the logged-in user's dev environment is selected.
(#3273)Raw changeset output
Releases
@trigger.dev/[email protected]
Patch Changes
Updated dependencies:
@trigger.dev/[email protected]
[email protected]Patch Changes
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)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)Add get_span_details MCP tool for inspecting individual spans within a run trace.
(#3255)New get_span_details tool returns full span attributes, timing, events, and AI enrichment (model, tokens, cost, speed)
Span IDs now shown in get_run_details trace output for easy discovery
New API endpoint GET /api/v1/runs/:runId/spans/:spanId
New retrieveSpan() method on the API clientMCP server improvements: new tools, bug fixes, and new flags.
(#3224)New tools:
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 logsNew API endpoints:
GET /api/v1/query/schema — query table schema discovery
GET /api/v1/query/dashboards — list built-in dashboardsNew features:
--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 toolsBug fixes:
Fixed search_docs tool failing due to renamed upstream Mintlify tool (SearchTriggerDev → search_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 completesContext optimizations:
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 fetchesAdd 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)Adapted the CLI API client to propagate the trigger source via http headers.
(#3241)Updated dependencies:
@trigger.dev/[email protected]
@trigger.dev/[email protected]
@trigger.dev/[email protected]@trigger.dev/[email protected]
Patch Changes
Fix list_deploys MCP tool failing when deployments have null runtime or runtimeVersion fields.
(#3224)Propagate run tags to span attributes so they can be extracted server-side for LLM cost attribution metadata.
(#3213)Add get_span_details MCP tool for inspecting individual spans within a run trace.
(#3255)New get_span_details tool returns full span attributes, timing, events, and AI enrichment (model, tokens, cost, speed)
Span IDs now shown in get_run_details trace output for easy discovery
New API endpoint GET /api/v1/runs/:runId/spans/:spanId
New retrieveSpan() method on the API clientMCP server improvements: new tools, bug fixes, and new flags.
(#3224)New tools:
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 logsNew API endpoints:
GET /api/v1/query/schema — query table schema discovery
GET /api/v1/query/dashboards — list built-in dashboardsNew features:
--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 toolsBug fixes:
Fixed search_docs tool failing due to renamed upstream Mintlify tool (SearchTriggerDev → search_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 completesContext optimizations:
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 fetchesLarge run outputs can use the new API which allows switching object storage providers.
(#3275)Add optional hasPrivateLink field to the dequeue message organization object for private networking support
(#3264)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)Adapted the CLI API client to propagate the trigger source via http headers.
(#3241)@trigger.dev/[email protected]
Patch Changes
Updated dependencies:
@trigger.dev/[email protected]
@trigger.dev/[email protected]
@trigger.dev/[email protected]
@trigger.dev/[email protected]@trigger.dev/[email protected]
Patch Changes
Updated dependencies:
@trigger.dev/[email protected]Adapted the CLI API client to propagate the trigger source via http headers.
(#3241)Updated dependencies:
@trigger.dev/[email protected]@trigger.dev/[email protected]
Patch Changes
Updated dependencies:
@trigger.dev/[email protected]@trigger.dev/[email protected]
Patch Changes
Updated dependencies:
@trigger.dev/[email protected]@trigger.dev/[email protected]
Patch Changes
Define and manage AI prompts with prompts.define(). Create typesafe prompt templates with variables, resolve them at runtime, and manage versions and overrides from the dashboard without redeploying.
(#3244)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)Adapted the CLI API client to propagate the trigger source via http headers.
(#3241)Updated dependencies:
@trigger.dev/[email protected]Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Original source Report a problem
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> - Apr 7, 2026
- Date parsed from source:Apr 7, 2026
- First seen by Releasebot:Apr 16, 2026
re2-test-2026-04-08
Trigger.dev fixes batch processing to retry R2 uploads after transient failures.
fix(batch): retry R2 upload on transient failure in BatchPayloadProce…
Original source Report a problem - Apr 7, 2026
- Date parsed from source:Apr 7, 2026
- First seen by Releasebot:Apr 16, 2026
re2-prod-2026-04-08
Trigger.dev fixes batch payload processing by retrying R2 uploads on transient failures.
fix(batch): retry R2 upload on transient failure in BatchPayloadProce…
Original source Report a problem - Mar 27, 2026
- Date parsed from source:Mar 27, 2026
- First seen by Releasebot:Apr 16, 2026
re2-test-private-link
Trigger.dev adds private links UI for private-link support.
- Mar 10, 2026
- Date parsed from source:Mar 10, 2026
- First seen by Releasebot:Apr 16, 2026
Trigger.dev v4.4.3
Trigger.dev adds Supabase env var syncing, auto-cancels in-flight dev runs when the CLI exits, and ships new Errors and AI-powered Test pages for easier failure tracking and payload generation.
2 improvements and 2 server changes.
Improvements
- syncSupabaseEnvVars pulls your Supabase project's database connection strings and saves them as Trigger.dev environment variables, removing the manual copy-paste step when setting up Supabase-connected tasks. (docs, #3152)
// trigger.config.ts import { defineConfig } from "@trigger.dev/sdk"; import { syncSupabaseEnvVars } from "@trigger.dev/build/extensions/core"; export default defineConfig({ build: { extensions: [ syncSupabaseEnvVars()], }, });- Auto-cancel in-flight dev runs when the CLI exits, using a detached watchdog process that survives pnpm SIGKILL. (#3191)
Server changes
These changes are included in the v4.4.3 Docker image and are already live on Trigger.dev Cloud:
- New Errors page for viewing and tracking run failures. Errors are grouped by fingerprint — view top errors for a time period, filter by task, search by text, and see occurrences over time. From the error detail view you can list all affected runs and bulk replay them. (#3172)
Private alpha on Trigger.dev Cloud — The Errors page is available now for self-hosted users. On Trigger.dev Cloud it's currently in private alpha, with a full public release coming soon. Contact us to get early access.
- The Test page now lets you automatically generate example payloads using AI. For schemaTask tasks, the AI uses your task's JSON schema to generate valid payloads. For regular tasks, it infers the schema from previous run payloads. The new sidebar tabs (Options, AI, Schema) give you full visibility into the schema being used. (#3188)
How to upgrade
Update the trigger.dev/* packages to v4.4.3 using your package manager:
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 # bunSelf-hosted users: update your Docker image to ghcr.io/triggerdotdev/trigger.dev:v4.4.3.
Original source Report a problem - Mar 10, 2026
- Date parsed from source:Mar 10, 2026
- First seen by Releasebot:Apr 16, 2026
Vercel integration
Trigger.dev adds a new Vercel integration that automatically deploys tasks with every Vercel release, syncs environment variables both ways, and can gate production with atomic deployments so apps and tasks stay in lockstep.
What it does
If you deploy your app on Vercel, you've probably been running trigger.dev deploy manually or bolting it onto a GitHub Actions workflow. That's over. The new Vercel integration connects your Vercel project directly to Trigger.dev so that every Vercel deployment automatically triggers a Trigger.dev deployment, syncs your environment variables, and (optionally) gates your Vercel deployment until your tasks are built.
One connection. Zero manual steps.
Three things, all automatic:
- Automatic deployments: Push code, Vercel deploys your app, Trigger.dev deploys your tasks. No trigger.dev deploy command, no CI/CD config to maintain.
- Environment variable sync: Variables flow both ways. Your Vercel env vars get pulled into Trigger.dev before each build. Trigger.dev syncs API keys (like TRIGGER_SECRET_KEY ) back to Vercel.
- Atomic deployments: Your Vercel app and Trigger.dev tasks deploy in lockstep. Your app never goes live with a mismatched task version.
Atomic deployments
This is the feature that previously required a custom GitHub Actions workflow to set up. Now it's a toggle.
When atomic deployments are enabled, Trigger.dev gates your Vercel deployment until the task build completes, sets the correct TRIGGER_VERSION , then triggers a Vercel redeployment. Your app always uses the exact version of tasks it was built with.
Here's the full sequence:
- Push code
- Webhook: new commit
- Start deployment
- Deployment created
- Create pull request
- Pull request created
- Start task build
- Deployment check
- Check pending (gate deployment)
- Build completes
- Set TRIGGER_VERSION env var
- Trigger redeployment
- Redeploy with new TRIGGER_VERSION
- Deployment check (redeployment)
- Check passed
- Promote deployment
- Deployment promoted
- Promote build
- New tasks live
- Dev
- GitHub
- Vercel
- Trigger.dev
- Tasks
Atomic deployments are enabled for production by default. The integration automatically disables Vercel's "Auto-assign Custom Production Domains" so deployments aren't promoted before your tasks are ready.
Environment mapping
The integration maps Vercel environments to Trigger.dev environments:
Vercel environment
Trigger.dev environmentProduction
ProductionCustom environment
Staging (you choose which one)Preview
PreviewDevelopment
DevelopmentIf your Vercel project has a custom environment (like "Staging"), you can map it to your Trigger.dev staging environment during setup.
Environment variable sync
Sync happens in both directions:
- Vercel to Trigger.dev: Your Vercel env vars get pulled into Trigger.dev per-environment (production, staging, preview). This happens during setup and optionally before each build. You can control sync behavior per-variable from your environment variables page.
- Trigger.dev to Vercel: API keys like TRIGGER_SECRET_KEY are synced to your Vercel project automatically.
If you use Supabase Branching or Neon Database Branching for preview environments, disable syncing for database env vars and use the syncSupabaseEnvVars or syncNeonEnvVars build extensions instead. These resolve the correct branch-specific credentials at build time.
Build options
Per-environment configuration from your project's Vercel settings:
- Atomic deployments: Sync Vercel and Trigger.dev deployments. On by default for production.
- Pull env vars before build: Pull the latest Vercel env vars before each Trigger.dev build. On by default.
- Discover new env vars: Automatically create new Trigger.dev env vars when new ones appear in Vercel. On by default.
Linked Trigger.dev and Vercel deployments
Trigger.dev creates deployment checks on your Vercel deployments, so you can see the status of your task build right from Vercel. And on the Trigger.dev side, each deployment stores a direct link back to the corresponding Vercel deployment. No more tab-switching to figure out which app deploy matches which task deploy. Both sides reference each other, and you can jump between them from the deployments page.
Getting started
Connect an existing project from two places:
- From Trigger.dev: Go to your project's Settings page and click "Connect Vercel."
- From the Vercel Marketplace: Install the Trigger.dev integration and follow the setup flow.
Or deploy our Next.js + Trigger.dev starter app from GitHub in one click.
All paths require the GitHub integration to be connected, since Trigger.dev builds your tasks from your GitHub repository.
Related docs
- Vercel integration docs
- Atomic deployment docs
- Preview branches docs
- Mar 10, 2026
- Date parsed from source:Mar 10, 2026
- First seen by Releasebot:Apr 16, 2026
trigger.dev v4.4.3
Trigger.dev releases v4.4.3 with better dev-run handling, new syncSupabaseEnvVars support for database connection strings, and a new Errors page for tracking failed runs in self-hosted Docker and Trigger.dev Cloud. The Test page also gets new sidebar tabs for schema and payload work.
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 # bunSelf-hosted Docker image:
ghcr.io/triggerdotdev/trigger.dev:v4.4.3Release 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
Original source Report a problem - Mar 10, 2026
- Date parsed from source:Mar 10, 2026
- First seen by Releasebot:Apr 16, 2026
v.docker.4.4.3: chore: release v4.4.3 (#3182)
Trigger.dev adds an Errors page for tracking failed runs and a richer Test page with sidebar tabs for schema payload generation and schema viewing. It also adds Supabase env syncing and auto-cancels in-flight dev runs when the CLI exits.
Summary
2 new features, 2 improvements.
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)Raw changeset output
Releases
@trigger.dev/[email protected]
Patch Changes
Add syncSupabaseEnvVars to pull database connection strings and save them as trigger.dev environment variables
(#3152)Updated dependencies:
@trigger.dev/[email protected]
[email protected]Patch Changes
Auto-cancel in-flight dev runs when the CLI exits, using a detached watchdog process that survives pnpm SIGKILL
(#3191)Updated dependencies:
@trigger.dev/[email protected]
@trigger.dev/[email protected]
@trigger.dev/[email protected]@trigger.dev/[email protected]
Patch Changes
Auto-cancel in-flight dev runs when the CLI exits, using a detached watchdog process that survives pnpm SIGKILL
(#3191)@trigger.dev/[email protected]
Patch Changes
Updated dependencies:
@trigger.dev/[email protected]
@trigger.dev/[email protected]
@trigger.dev/[email protected]
@trigger.dev/[email protected]Patch Changes
Updated dependencies:
@trigger.dev/[email protected]
@trigger.dev/[email protected]Patch Changes
Updated dependencies:
@trigger.dev/[email protected]
@trigger.dev/[email protected]Patch Changes
Updated dependencies:
@trigger.dev/[email protected]
@trigger.dev/[email protected]Patch Changes
Updated dependencies:
@trigger.dev/[email protected]
@trigger.dev/[email protected]Patch Changes
Updated dependencies:
@trigger.dev/[email protected]Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Original source Report a problem
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>