Files
triggerdotdev--trigger.dev/.server-changes/billing-limits.md
T
Katia Bulatova b1987dc090 feat(webapp): billing limits — pause, reject, recovery, and settings UI (#3996)
## Summary

Adds Billing Limits to the webapp.

Customers can set a monthly spend cap. When usage crosses the limit,
billable environments enter a grace period. If the limit is not resolved
before grace expires, new triggers are rejected until the organization
increases or removes the limit.
2026-06-26 17:12:53 +02:00

1.1 KiB

area, type
area type
webapp feature

Add billing limits. Customers set a spend cap; when usage crosses it, billable environments pause for a grace period, new triggers are rejected once it ends, and a recovery flow resumes or cancels the queued backlog. Reconciliation keeps the webapp converged to billing's state.

Manual pause during billing enforcement

While pauseSource=BILLING_LIMIT, manual resume is rejected and manual pause is a silent no-op (PauseEnvironmentService returns success with state paused). We do not stack a manual pause on top of billing enforcement because resolve converge unpauses all BILLING_LIMIT-paused environments for the org.

API callers that pause during enforcement should expect the environment to resume when the billing limit is resolved. The queues UI hides pause/resume in this state; see manualPauseEnvironmentGuard.server.ts.

The admin runs.enable endpoint skips billing-paused environments when re-enabling or disabling org runs (returns them in skipped, not failures or the update count). They resume only after the billing limit is resolved.