cloudflare / cloudflare/developer-platform
Deploy to Cloudflare button: source import silently fails — created repo has only README + wrangler config, worker stuck on Hello World placeholder
- Lenguaje dominante
- Sin datos de lenguaje
- Estrellas
- 1
- Forks
- 0
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
## 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:**
- `chanfana-openapi-template` (**official Cloudflare template**): [chaunceyv2-byte/chanfana-openapi-template](https://github.com/chaunceyv2-byte/chanfana-openapi-template) imported the full source on 2026-07-04, while [walusimbikassim9-lab/chanfana-openapi-template](https://github.com/walusimbikassim9-lab/chanfana-openapi-template) got the 2-file fallback on 2026-07-03.
- `wloc-spoofer` (community repo): [xw-yin/wloc-spoofer](https://github.com/xw-yin/wloc-spoofer) succeeded and [qqqqqqqqqqqq23131/wloc-spoofer](https://github.com/qqqqqqqqqqqq23131/wloc-spoofer) got 2 files — **same day**.
**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`)
1. **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.
2. **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
1. Fix / add retries to the source-import step of the deploy flow.
2. Surface import failures in the deploy UI — the silent fallback makes users debug their own repos for hours when nothing is wrong with them.
Guía de contribución
Línea de trabajo
Comience en el flujo de importación de código fuente de deploy.workers.cloudflare.com y compare la ruta exitosa de “source repo import” con los commits de fallback que solo añaden README.md y la configuración de wrangler. Reproduzca el problema con un repositorio público y, después, verifique que los fallos de importación se reintenten o se muestren en la deploy UI en lugar de crear un Worker que solo contenga un marcador de posición.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- github
- Área
- cloud, devops
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100