Task-level TTL defaults, 11 new MCP server tools, and major MCP improvements
Rollupv4.4.4
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.
// trigger.config.ts — set a project-wide default
import { defineConfig } from "@trigger.dev/sdk";
export default defineConfig({
project: "<project ref>",
ttl: "1h", // runs expire after 1 hour if not dequeued
});
// task — override the global default for this task
export const myTask = task({
id: "my-task",
ttl: "30m", // this task's runs expire after 30 minutes
run: async (payload) => {
// ...
},
});
Set ttl: 0 on a task to opt out of the global default entirely.
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, eliminating the need for access keys.
CLI improvements
- Platform notifications: the
trigger devandtrigger logincommands 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-notificationsto disable.
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 inget_run_detailstrace output for easy discovery.get_query_schema— discover available TRQL tables and columnsquery— execute TRQL queries against your datalist_dashboards— list built-in dashboards and their widgetsrun_dashboard_query— execute a single dashboard widget querywhoami— show current profile, user, and API URLlist_profiles— list all configured CLI profilesswitch_profile— switch the active profile for the MCP sessionstart_dev_server— starttrigger devin the background and stream outputstop_dev_server— stop the running dev serverdev_server_status— check dev server status and view recent logs
Improvements
--readonlyflag hides write tools (deploy,trigger_task,cancel_run) so the AI cannot make changesget_run_detailstrace output is now paginated with cursor supportget_query_schemanow requires a table name and returns only that table's schemaget_current_workerno longer inlines payload schemas — use the newget_task_schematool instead- Query results formatted as text tables instead of JSON (~50% fewer tokens)
cancel_run,list_deploys,list_preview_branchesformatted 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:queryJWT scope added for query endpoint authorization- CLI API client now propagates the trigger source via HTTP headers
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.
- Fix
--loadflag being silently ignored on local and self-hosted builds. - Fixed
search_docsMCP tool failing due to a renamed upstream Mintlify tool (SearchTriggerDev→search_trigger_dev). - Fixed
list_deploysMCP tool failing when deployments have nullruntimeorruntimeVersionfields. - Fixed
list_preview_branchesMCP tool crashing due to incorrect response shape access. - Fixed
metricsTRQL table column documented asvalueinstead ofmetric_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.
- Add
allowRollbacksquery param to the promote deployment API to support version downgrades. - Automatic LLM cost calculation for spans with GenAI semantic conventions. Costs are calculated from an in-memory pricing registry and written to span attributes.
- New
GET /api/v1/runs/:runId/spans/:spanIdendpoint returning span properties, events, AI enrichment, and triggered child runs. - Multi-provider object storage with protocol-based routing for zero-downtime migration. Adds IAM role-based auth for object stores (no access keys required).
- Platform notifications for informing users about new features and platform events directly in the CLI and dashboard.
- 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.
- Reduce run start latency by skipping the intermediate queue when concurrency is available, rolled out per-region and enabled automatically for development environments.
- Environment variable page search now matches on environment type (production, staging, development, preview) and branch name, not just variable name and value.
- Set
application_nameon Prisma connections fromSERVICE_NAMEfor DB load attribution by service. - Add p-retry (3 attempts, 500ms–2s exponential backoff) around object store uploads in
BatchPayloadProcessor. - 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.
- Reduce lock contention when processing large
batchTriggerAndWaitbatches by removing the per-item Redis lock acquisition. - Strip
securequery parameter fromQUERY_CLICKHOUSE_URLbefore passing to the ClickHouse client, fixing a startup crash withError: Unknown URL parameters: secure. - Fix dev environment selection for teams with multiple members: now filters DEVELOPMENT environments by
orgMember.userIdto ensure the logged-in user's dev environment is returned.
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 # bun
Self-hosted users: update your Docker image to ghcr.io/triggerdotdev/trigger.dev:v4.4.4.
Fetched June 3, 2026

