What happened?
An account has 8 existing Cron Triggers that predate/enforce beyond the current Free-plan limit of 5. I need to reduce the account to 2 triggers. Deploying a Worker with crons = [] fails with error 10072 instead of removing that Worker's existing schedules. The direct API equivalent also fails:
PUT /accounts/<account>/workers/scripts/<script>/schedules
Content-Type: application/json
[]
Response:
10072: This account has reached the Workers Free limit of 5 cron triggers per account.
Because every schedule update is rejected while the account is above the limit, there is no non-destructive way to get back under the limit. Omitting triggers leaves schedules unchanged, and the API exposes no individual schedule-delete operation.
Reproduction
- Have an account with more than 5 existing triggers (for example, grandfathered schedules).
- Configure one Worker with:
- Run
wrangler deploy.
- The Worker code uploads, but updating
/schedules fails with 10072.
Expected behavior
A schedule update that reduces the account-wide trigger count, especially [], should be allowed even when the current count is above the plan limit. Capacity enforcement should reject only net additions.
Wrangler versions
Observed with Wrangler 4.56.0 and 4.69.0 on Node 22 / macOS. The same failure occurs via the REST API, so this appears to be an API-side limit check rather than Wrangler-only behavior.
Workaround impact
The only apparent workaround is deleting whole Worker scripts, which also destroys script-scoped secrets and creates avoidable downtime. The Cloudflare documentation says crons = [] is the supported way to remove all triggers.
What happened?
An account has 8 existing Cron Triggers that predate/enforce beyond the current Free-plan limit of 5. I need to reduce the account to 2 triggers. Deploying a Worker with
crons = []fails with error 10072 instead of removing that Worker's existing schedules. The direct API equivalent also fails:Response:
Because every schedule update is rejected while the account is above the limit, there is no non-destructive way to get back under the limit. Omitting
triggersleaves schedules unchanged, and the API exposes no individual schedule-delete operation.Reproduction
wrangler deploy./schedulesfails with 10072.Expected behavior
A schedule update that reduces the account-wide trigger count, especially
[], should be allowed even when the current count is above the plan limit. Capacity enforcement should reject only net additions.Wrangler versions
Observed with Wrangler 4.56.0 and 4.69.0 on Node 22 / macOS. The same failure occurs via the REST API, so this appears to be an API-side limit check rather than Wrangler-only behavior.
Workaround impact
The only apparent workaround is deleting whole Worker scripts, which also destroys script-scoped secrets and creates avoidable downtime. The Cloudflare documentation says
crons = []is the supported way to remove all triggers.