Plan and setup
- Hobby team, 1 project, 1 daemon (
voice-worker), region iad1, 1 instance, 1 GiB, built from a Dockerfile. - "Auto-assign custom production domains" is off, so production deployments are staged and then promoted.
- Daemon quota is not exhausted (2 h 55 m of 5 Active CPU-hours, 139 of 420 GB-hours).
What happens
Since about 2026-11-11 03:30 UTC the daemon controller accepts changes for this daemon but does not carry them out. The running instance keeps working normally, on the deployment that was promoted the day before.
1. Three production promotions did not roll the daemon (all times UTC, 2026-11-11)
dpl_BunEVZ5FCYBoHgiXoii8ZCAgGF3upromoted 04:44:41 (created through the API)dpl_6h1v2dpYX8gsVhRaghVZrYk67Dsbpromoted 05:43:20 (created through the API)dpl_EGzkA29tmoxZYotNYGFJUJX38UkNpromoted 06:22:52 (created by a git push)
Each one became the current production deployment (readySubstate PROMOTED, all aliases completed) and each lists the daemon under Resources with its own image. The daemon stayed on the previous deployment.
2. A scale-down was accepted but not executed
- 06:47:23: Scale dialog, iad1 set from 1 to 0. Response: "Daemon scaled".
- The daemon record then showed instances 0 in all regions,
configuredInstancesiad1 = 1, desired 0, status "reconciling". The instance was still alive and working more than 20 minutes later. - 07:09:50: "Clear scaling overrides". This worked as a configuration change: the record returned to instances iad1 = 1, desired 1, status "ready". Ten minutes later the same old instance is still the one running, on the old deployment.
Daemon record (GET /v1/projects/{id}/daemons), unchanged through all of the above
deploymentIddpl_7BD9MhzwZeaWM9X6GqtackLi7Bu4(promoted 2026-11-10 16:13:30)- image
daemon.voice-worker@sha256:8e3025faee9e... - instance
dmni_01m733x9qjk48a76spvvjcjexb,startedAt2026-11-10T16:15:56.986Z,alivetrue - instance
lastCheckedAt2026-11-11T03:30:52.581Z, which has not advanced since - daemon
updatedAt2026-11-10T16:15:56.966Z
What worked before
- 2026-11-06: a promotion rolled the daemon within 2 seconds.
- 2026-11-10: a promotion rolled the daemon within 2 minutes 28 seconds.
The documentation says new instances start "right away" when a deployment becomes the production deployment.
Not tried
Restarting the instance, redeploying with a renamed daemon, or switching to direct production deployments.
Questions
- Is the daemon controller stuck for this project, and can it be reset on Vercel's side?
- Is there a supported way to make the daemon reconcile to the current production deployment?
- Is there anything on the Hobby plan that pauses daemon rollouts without stopping the running instance?