What happened
Clicking a Deploy to Cloudflare button (deploy.workers.cloudflare.com/?url=...) completes with no visible error, but the deployment is broken:
- The newly created GitHub repo contains only two files:
README.md and the wrangler config. All source is missing (src/, package.json, lockfile, everything else).
- The wrangler config's
name field is rewritten to the new worker name, with all other content — including comments — preserved verbatim. So the repo was clearly synthesized from the deploy page's parsed state, not cloned from git.
- Commit fingerprint of the broken path:
Initial commit (adds README.md) + Uploading template. (adds the wrangler config) — instead of the normal single source repo import commit that successful deploys produce.
- The worker is created but stays on the "Hello World" placeholder (deployments show
Source: Upload at flow time). Since the repo has no source, any build would fail anyway.
- Secrets are provisioned (a
Secret Change deployment appears seconds after creation).
- Workers Builds doesn't appear to be wired up either: later pushes to the created repo trigger no builds and no check-runs (commit status stays
pending with zero contexts).
- The deploy UI reports neither success nor failure — it just returns to the deploy screen.
Evidence this is a service-side intermittent failure (not repo content)
GitHub commit search shows two distinct outcomes happening in parallel, same day:
| Path |
Commits |
Created repo content |
| ✅ success |
single source repo import |
full source tree |
| ❌ fallback |
Initial commit + Uploading template. |
README.md + wrangler config only |
Same source, different outcomes:
Ruled out (each disproven by at least one observed case):
- monorepo subdirectory URLs — a fully self-contained standalone repo fails too
wrangler.toml vs wrangler.jsonc — plenty of .jsonc victims, including the official template above
- private repos — all repos involved are public
- missing template metadata (
.gitignore, cloudflare key in package.json, .dev.vars.example) — official templates have all of these and still hit the fallback
Scale: a commit search for "Uploading template." surfaces dozens of affected repos in 2026-07-03 → 07-05 alone. Failures also look sticky per user/session: one user hit it 3× in one day (peterniss/proxycontroller, ...02, ...03), and I hit it twice in one day with two different source repos.
My repro (account a6f98d533d0a0c22b3fdaded5cd8b8b2)
- 2026-07-04 ~19:02 UTC —
?url=https://github.com/Javis603/token-monitor/tree/main/worker (public monorepo subdir) → repo freefrank/token-monitor-hub created with 2 files, worker token-monitor-hub left on the Hello World placeholder.
- 2026-07-04 ~19:53 UTC —
?url=https://github.com/freefrank/token-monitor-hub (standalone, fully self-contained, public — I had pushed the full source into it by then) → repo token-monitor-hub-test created, again with only 2 files.
(I've since recovered manually: pushed the source and ran wrangler deploy — the worker itself runs fine, so the source is not the problem. The -test worker has been deleted.)
Expected behavior
Either the created repo contains the full source (source repo import), or the flow surfaces an error instead of silently committing a placeholder template and leaving a Hello World worker that looks deployed.
Ask
- Fix / add retries to the source-import step of the deploy flow.
- Surface import failures in the deploy UI — the silent fallback makes users debug their own repos for hours when nothing is wrong with them.
What happened
Clicking a Deploy to Cloudflare button (
deploy.workers.cloudflare.com/?url=...) completes with no visible error, but the deployment is broken:README.mdand the wrangler config. All source is missing (src/,package.json, lockfile, everything else).namefield is rewritten to the new worker name, with all other content — including comments — preserved verbatim. So the repo was clearly synthesized from the deploy page's parsed state, not cloned from git.Initial commit(addsREADME.md) +Uploading template.(adds the wrangler config) — instead of the normal singlesource repo importcommit that successful deploys produce.Source: Uploadat flow time). Since the repo has no source, any build would fail anyway.Secret Changedeployment appears seconds after creation).pendingwith zero contexts).Evidence this is a service-side intermittent failure (not repo content)
GitHub commit search shows two distinct outcomes happening in parallel, same day:
source repo importInitial commit+Uploading template.README.md+ wrangler config onlySame source, different outcomes:
chanfana-openapi-template(official Cloudflare template): chaunceyv2-byte/chanfana-openapi-template imported the full source on 2026-07-04, while walusimbikassim9-lab/chanfana-openapi-template got the 2-file fallback on 2026-07-03.wloc-spoofer(community repo): xw-yin/wloc-spoofer succeeded and qqqqqqqqqqqq23131/wloc-spoofer got 2 files — same day.Ruled out (each disproven by at least one observed case):
wrangler.tomlvswrangler.jsonc— plenty of.jsoncvictims, including the official template above.gitignore,cloudflarekey inpackage.json,.dev.vars.example) — official templates have all of these and still hit the fallbackScale: a commit search for
"Uploading template."surfaces dozens of affected repos in 2026-07-03 → 07-05 alone. Failures also look sticky per user/session: one user hit it 3× in one day (peterniss/proxycontroller,...02,...03), and I hit it twice in one day with two different source repos.My repro (account
a6f98d533d0a0c22b3fdaded5cd8b8b2)?url=https://github.com/Javis603/token-monitor/tree/main/worker(public monorepo subdir) → repofreefrank/token-monitor-hubcreated with 2 files, workertoken-monitor-hubleft on the Hello World placeholder.?url=https://github.com/freefrank/token-monitor-hub(standalone, fully self-contained, public — I had pushed the full source into it by then) → repotoken-monitor-hub-testcreated, again with only 2 files.(I've since recovered manually: pushed the source and ran
wrangler deploy— the worker itself runs fine, so the source is not the problem. The-testworker has been deleted.)Expected behavior
Either the created repo contains the full source (
source repo import), or the flow surfaces an error instead of silently committing a placeholder template and leaving a Hello World worker that looks deployed.Ask