You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 51c20df
Browse filesBrowse the repository at this point in the historyBrowse files
Leave Workers without a proxy token binding on the token they hold
A rotation recorded the new generation on the row of a Worker that has no
__VOID_PROXY_TOKEN binding, although nothing was patched. Senders then
presented a token that Worker does not hold. Such a Worker is now skipped
like one whose author cannot deploy: its row, queue entries and cron
scheduler keep the generation it holds, the step logs that it needs a
redeploy, and REVOKE raises the floor without waiting for it.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: platform/meta/operations.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -72,7 +72,7 @@ These commands are for Void Cloud's Workers. Self-hosted installations use the [
72
72
73
73
A deploy gives a project still on generation 0 a generation 1 token. Its older Workers keep the legacy token, which stays accepted until the project rotates.
74
74
75
-
Workers deployed before the binding rename hold the legacy token in `__AI_TOKEN`, which rotation cannot replace, so they lose AI, email and ISR revalidation when their project rotates, including after a rollback to such a deployment. Get them redeployed. To list the active ones, set `rename_live_at` (psql `\set`) to the first production deploy that contains commit `54375ae1` (2026-03-03), or a later time if unsure; static deployments in the list need nothing.
75
+
Workers deployed before the binding rename hold the legacy token in `__AI_TOKEN`, which rotation cannot replace. A rotation skips them (`[proxy-token-rotation] skipped <project> worker=<name> has no __VOID_PROXY_TOKEN binding`) and leaves their deployment rows, queue entries and cron scheduler on the legacy token, so queues, crons and proxy calls into them keep working. Their own calls to the proxy (AI, email, ISR revalidation) fail once the floor rises, including after a rollback to such a deployment. Get them redeployed. To list the active ones, set `rename_live_at` (psql `\set`) to the first production deploy that contains commit `54375ae1` (2026-03-03), or a later time if unsure; static deployments in the list need nothing.
`[proxy-token-rotation] skipped ${fx.projectId} worker=${fx.worker(fx.retained[0]!)} has no __VOID_PROXY_TOKEN binding; redeploy the project to give it one`,
1046
+
);
1047
+
// Its row still names the token it holds; the floor rises past it.
0 commit comments