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

Open
#31 4 comments 0 reactions 0 assignees View on GitHub
awaiting-response:cloudflare
Dominant language
No language data
Stars
1
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## 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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.