The health report: diagnose a project in one command

A server-computed verdict on whether work is starting, whether the runs that start are succeeding, and whether your telemetry is fresh, each with a suggested next action. Run it from the CLI, the get_report MCP tool, or the API.

Katia Bulatova

Katia Bulatova

Product Engineer, Trigger.dev

Image for The health report: diagnose a project in one command

When a project feels slow, the useful question is narrow: is work not starting, or are the runs that start failing? Those are different problems with different fixes, and guessing between them wastes time. The health report separates the two and tells you which one you're actually looking at.

Three signals, one verdict

Every report reads three things independently. Flow is whether work is starting: pending counts, start latency, and concurrency-limit saturation. Execution is whether the runs that do start are succeeding: failure rate and durations measured against your normal. Liveness is whether the telemetry itself is fresh, so a green board never hides a dead pipe. Each axis gets its own headline verdict and a suggested next action.

The verdict is computed on the server from your metrics. There's no model in the diagnosis, so there's nothing to hallucinate, and the same inputs always produce the same answer.

Read the diagnosis, not just the number

When flow slows, the report walks a cause tree off your queue metrics (env-limit saturation, queue throttling, key starvation, a trigger spike, a dequeue stall). It names the likely cause and rules out the ones that don't fit, so you're not left correlating dashboards by hand.


/report health prod ยท last 1h ยท vs your 7d normal
๐ŸŸก Flow slowing ยท ๐ŸŸข Execution healthy ยท ๐ŸŸข data fresh
FLOW ๐ŸŸก at your env concurrency limit (last 40 min)
concurrency 100/100 โ–โ–…โ–†โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ pinned 40 of last 60 min
pending 1,910 โ†‘ 16ร— โ–โ–โ–‚โ–ƒโ–…โ–…โ–‡โ–ˆ (normal ~120)
start latency p95 42s โ†‘ 6ร— โ–โ–โ–‚โ–„โ–†โ–†โ–‡โ–ˆ (normal ~7s)
worst queue email-sends โ€” 82% of pending
read: limit saturated โ†’ starts lag โ†’ backlog grows
not workers, not platform โ€” dequeue keeps pace at ~820/min
EXECUTION ๐ŸŸข the runs that DO start are fine
failures 1.3% (normal ~1.1%) ยท durations normal
LIVENESS ๐ŸŸข fresh โ€” last completion 4s ago
โ†’ Raise the env concurrency limit
or do nothing โ€” backlog drains in ~2.3 min once triggers ease

Run it wherever you are

The report renders from one server-side view model, so the verdict is identical in four places:

  • CLI: trigger report health, colorized in a terminal and plain markdown when piped.
  • MCP tool: get_report, for your coding assistant, with unicode sparklines and ๐ŸŸข/๐ŸŸก/๐Ÿ”ด status markers.
  • MCP prompt: /report health, a slash command in hosts that support prompts.
  • API: GET /api/v1/reports/:key, with format set to markdown, ansi, or json.

Try it

Point the CLI at any environment and run:


npx trigger.dev@latest report health

You get the verdict for that environment right in your terminal, and get_report hands your coding assistant the same thing.

Ready to start building?

Build and deploy your first task in 3 minutes.

Get started now