budget reset
Acknowledge a cap breach and re-enable deploys. Clears the breaker. Preserves flap-suppress carry-over by default.
Plain reset is
rw-gated. A read-write user can runconvox budget resetwithout admin role for the routine ACTIVE→recover flow.
--force-clear-cooldownrequires admin role on the rack RBAC. The 24-hour flap-prevention cooldown is admin-only to drop. A non-admin caller (rwrole) attempting--force-clear-cooldownreceives403 AppBudgetReset --force-clear-cooldown requires Admin role; current role is 'w'. Contact rack admin or use Admin token.Basic-auth (rack-password) callers automatically pass the admin check.
Usage
convox budget reset <app> [--force-clear-cooldown]
Examples
Reset the breaker on myapp; flap-suppress carry-over preserved:
$ convox budget reset myapp
Resetting budget for myapp... OK
Breaker cleared.
Reset and force-clear the flap-suppress cooldown so the next cap fire will NOT be suppressed (use only when you are sure the underlying cause is resolved):
$ convox budget reset myapp --force-clear-cooldown
Resetting budget for myapp (force-clearing flap-suppress cooldown)... OK
Behavior
- Clears
CircuitBreakerTrippedand the alert-fired timestamps. - Restarts services that were already shutdown by
:fired(callsrestoreFromAnnotationto reapply the persisted replica counts). Both the plain reset and--force-clear-cooldowninvoke the same replica-restore path; cap-raise alone clears the breaker but does NOT restart services, soconvox budget resetis the canonical post-:firedrecovery path. - Preserves the flap-suppress carry-over (
FlapSuppressedUntilandFlapSuppressFiredAtannotations) unless--force-clear-cooldownis set. The flag is additive — it does not change the breaker-clear or replica restore behavior, but it additionally clears the flap-suppress cooldown so the next cap fire will not be suppressed. - Emits
app:budget:auto-shutdown:cancelledreason=reset-during-armedif the reset interrupts an in-flight armed countdown. - Does NOT reset the current month's spend; spend continues accumulating toward the cap. Reset is the breaker-clear, not a spend-zero.
The reset is serialized against the accumulator's tick path via the per-app
lock — concurrent reset and accumulator decisions cannot produce duplicate
:cancelled events.
See Also
- budget — full budget command group
- budget cap raise — raise the cap instead of resetting
- Reset and force-clear cooldown — operational guide