cloudflare / cloudflare/developer-platform

Workers Builds 'fix Worker name' PR ignores documented exemptions (custom deploy command, environments naming, --experimental-autoconfig=false)

Abierto
#33 1 comentario 0 reacciones 0 asignados Ver en GitHub
awaiting-response:cloudflare feature:workers-builds
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 is the problem?

Workers Builds' automatic "fix Worker name" PR bot (`cloudflare-workers-and-pages[bot]`, [changelog](https://developers.cloudflare.com/changelog/post/2025-02-20-builds-name-conflict/)) repeatedly opens a PR retitling the top-level `wrangler.jsonc`/`wrangler.toml` `name` field to match the connected (anchor) Worker — even when that mismatch is intentional (e.g. one repo with a top-level config for a Worker deployed only via a separate, disconnected deploy path, and an `env.*` block for the Worker Workers Builds actually deploys).

We tested every documented and CLI-level mitigation we could find, and none of them stop the PR:

1. **Custom deploy command** — the [docs](https://developers.cloudflare.com/workers/ci-cd/builds/troubleshoot/#workers-name-requirement) state a config PR "is only generated when your deploy command is `npx wrangler deploy`." We use `pnpm exec wrangler deploy -c dist/server/wrangler.json` (functionally equivalent, but not that literal string) — a PR was still opened.
2. **`-` Wrangler-environments naming** — [docs](https://developers.cloudflare.com/workers/ci-cd/builds/troubleshoot/#workers-name-requirement) document an exception where a dashboard Worker `my-worker-staging` can deploy from config `name = my-worker` + `[env.staging]`. We renamed our top-level config to match this shape exactly (top-level `please-corp` + `env.dev` → dashboard Worker `please-corp-dev`) — a PR was still opened.
3. **`--experimental-autoconfig=false`** — `wrangler deploy --help` shows this flag defaults to `true` in wrangler 4.100.0. We appended it to the deploy command — a PR was still opened.

Across all three tests, PR creation consistently landed **~71–75 seconds into every ~3–4 minute build**, well before the deploy step runs. This strongly suggests the name-fix generator is a server-side check that runs early in the build pipeline (post-clone, pre-deploy) — meaning none of the wrangler CLI flags or deploy-command shapes documented as exemptions can actually reach it.

Full evidence and timestamps: https://github.com/cloudflare/workers-sdk/discussions/11667#discussioncomment-17677011

### What is the expected behavior?

Either:
- The documented exemptions (custom deploy command, environments naming) should actually suppress the PR, as the docs state, **or**
- There should be an explicit account/Worker-level toggle to disable this specific PR-bot behavior, independent of `autoconfig` and independent of branch-build settings.

### How can we reproduce it?

1. Connect a Worker `foo-dev` to a repo via Workers Builds, with the git connection anchored to `foo-dev`.
2. In the repo's Wrangler config, set the top-level `name` to something that does NOT match `foo-dev` (e.g. because a *separate*, disconnected Worker `foo-prod` uses that top-level name for its own deploy path), while an `env.dev` block sets `name: "foo-dev"`.
3. Push to the watched branch. Observe the bot opens a PR renaming the top-level `name` to `foo-dev`.
4. Try any of: a custom (non-`npx wrangler deploy`) deploy command, restructuring the config to the `-` exception shape, or `--experimental-autoconfig=false`. Push again. The PR still gets opened.

### Workaround

We ended up blocking the bot's branch (`update_worker_name_to_*`) from being created at all via a GitHub repository ruleset (requires a paid GitHub plan for private repos), and additionally auto-close any PR that does get through via a scoped GitHub Action. Neither of these should be necessary — an account-level toggle would be much simpler.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Empieza reproduciendo el flujo de Workers Builds usando el nombre de nivel superior de wrangler.jsonc/wrangler.toml, un nombre env.dev y las variaciones de deploy-command indicadas. Revisa la documentación de troubleshooting enlazada y las marcas de tiempo de las evidencias; después, sigue el rastro de dónde se genera el name-fix PR. Se considera terminado cuando las exenciones documentadas suprimen el PR o está disponible un interruptor explícito para deshabilitarlo a nivel de cuenta/Worker.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
github
Área
ci-cd, 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
42/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.