Repository navigation
Description
Summary
No pull request in this repo can pass CI: the Smoke job's publish step answers "You cannot
upload a new version of a Worker that does not yet exist. Please run the deploy command
first." The sahajatlas Worker — the app's deploy target in docs/rules/deployment.md — does
not answer at its own workers.dev host, nor at any earlier preview alias. sahajatlas.com
still serves correctly, so this is not a visitor-facing outage today, but the deploy target the
repo is configured against is in an unknown state.
Approach
The cause is outside this repository, and no commit here fixes it. wrangler.jsonc,
.github/workflows/ci.yml and the publish step are unchanged since the last green run. Two
candidate causes, and the dashboard decides which:
- The Worker was deleted.
wrangler.jsonc:18warns twice thatsahajatlaswas also the
retiring Pages project's name. chore(build): cut sahajatlas.com over to Workers and delete Pages #283's last phase deletes that Pages project; deleting the
Worker of the same name instead fits every measurement below. - The CI credential moved.
CLOUDFLARE_API_TOKENorCLOUDFLARE_ACCOUNT_IDnow reads an
account that holds nosahajatlasWorker.Workers Builds: sahajatlas-designstill passes,
but that uses Cloudflare's own git integration, not these two secrets, so it does not
discriminate.
⚠ The repo-side "fix" is wrong. Changing versions upload to deploy in ci.yml:220
would make every pull request deploy to production. ci.yml:194 and docs/testing.md state why
the command is versions upload: it uploads a version and deploys nothing, so production traffic
never moves.
Whichever cause holds, docs/rules/deployment.md is then wrong about what serves
sahajatlas.com, because it was written on the assumption that the Worker is what does.
Acceptance criteria
- CI's Smoke job on an open pull request publishes a preview and runs its 18 specs, instead
of reporting "NO smoke specs ran". -
https://sahajatlas.contact-c66.workers.dev/serves the app, or
docs/rules/deployment.mdsays that host is deliberately off and what serves the domain
instead — verified, not assumed. - A deploy of
mainlands on the Workerwrangler.jsoncnames. -
docs/rules/deployment.mdrecords what this incident found, so the next reader is not
re-deriving it.
Verification checklist
-
curl -sS -o /dev/null -w '%{http_code}\n' https://sahajatlas.contact-c66.workers.dev/—
not404with Cloudflareerror code: 1042 - Re-run CI on any open pull request: the
Smokecheck is green, and its step summary
reports specs run rather than the publish warning -
curl -sSI https://sahajatlas.com/embed.jsstill carries
cache-control: public, max-age=0, must-revalidateandaccess-control-allow-origin: * -
curl -sS https://sahajatlas.com/robots.txt | head -1is still our own file
Notes
Measured 2026-11-01, 20:21–20:40 UTC, from the fix-ci run on #355:
| Probe | Result |
|---|---|
sahajatlas.contact-c66.workers.dev |
404, Cloudflare error code: 1042 |
pr-344-sahajatlas.contact-c66.workers.dev |
404, error code: 1042 — docs/testing.md records this alias green on 2026-10-30 |
sahajatlas-design.contact-c66.workers.dev |
200, serves the playground |
sahajatlas.com/ and /embed.js |
200, with our own _headers (access-control-allow-origin: *, x-robots-tag: noindex, max-age=0, must-revalidate) |
sahajatlas.com/assets/not-real-<random>.js |
200 text/html — a live origin with a single-page-application fallback is answering |
The window: CI run 551 was green at 19:10 UTC; run 552 (#353,
claude/feat-17-brand-map-markers) failed at this same publish step at 20:05 UTC, and run 553
(#355) at 20:21 UTC. The two branches share nothing, so the failure is
repo-wide, not a branch's.
Priority is High, not Critical: every pull request is blocked, but no visitor-facing outage
was observed. Raise it if sahajatlas.com starts failing.
Related, not a parent: #266 is the Pages-to-Workers goal, and
#283 is the cutover whose last phase deletes the same-named Pages project.
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Hold Until
Projects
- StatusShow more project fieldsDone
Activity
Ardnived commentedon Nov 2, 2026
Resolved by #357. The Worker was never deleted, and the CI credential is fine. It was renamed in the dashboard, from
sahajatlastosahajatlas-web, on 2026-11-01 at about 19:24Z.wrangler.jsoncstill namedsahajatlas, so everyversions uploadtargeted a Worker that no longer existed. This matches the measured window: green at 19:10Z, red from 20:05Z.pr-357-sahajatlas-web.contact-c66.workers.devand passed. The open PRs were brought up to date withmainto re-run theirsworkers.devhost serves the apphttps://sahajatlas-web.contact-c66.workers.dev/returns 200. The oldsahajatlas.…host returns 404 because the name no longer existsmainlands on the Workerwrangler.jsoncnamesWorkers Builds: sahajatlas-webon #357's merge, and the production lane readsahajatlas.comand passed: https://github.com/sydevs/SahajAtlasWeb/actions/runs/41371275919docs/rules/deployment.mdrecords the incidentwrangler.jsonc'snamemust follow any dashboard renameembed.jsheaders androbots.txtmax-age=0, must-revalidate,access-control-allow-origin: *, and our ownrobots.txtThe full move record is on #266.