Category A: Form bugs. Cloudflare's deploy form asks for things wrong, or doesn't ask for things it should. The user can't get past the form (or gets past it confused).
This template intentionally reproduces three known bugs.
The Deploy to Cloudflare flow has roughly six steps:
- Click button → land on
deploy.workers.cloudflare.com. - Auth → sign in to Cloudflare and connect a Git provider.
- Configure form → name Worker/repo, fill in resource and secret fields.
- Submit form → Cloudflare validates the form.
- Clone + provision → Cloudflare copies repo into your GitHub, creates resources.
- Build + deploy → Workers Builds runs
npm install+ yourdeployscript.
| # | Bug | Fails at step |
|---|---|---|
| 1 | Vectorize Dimensions and Metric fields are blank with no template-provided default |
Step 3 → 4 — user is stuck on the form, must guess values or read the README |
| 2 | .dev.vars.example lines MCP_BEARER_TOKEN and OPTIONAL_WEBHOOK_URL are forced required even though the cloudflare.bindings.<NAME>.description in package.json says "leave blank" |
Step 3 → 4 — form-submit validation blocks deploy if either is empty |
| 3 | kv_namespaces[0] has no default id in wrangler.jsonc |
Step 4 or 5 — form may accept it, but provisioning or first deploy can fail because no default ID exists |
- User clicks the button.
- Signs in.
- On the config form they see:
- Two empty fields labeled
DimensionsandMetricforVECTOR_INDEXwith no hint they should be768andcosine. - Three secret fields:
ADMIN_EMAIL,MCP_BEARER_TOKEN,OPTIONAL_WEBHOOK_URL. Descriptions say "leave blank" for two of them.
- Two empty fields labeled
- User leaves
MCP_BEARER_TOKENblank as instructed → Deploy button stays disabled / form rejects submit. - User has to invent a value to get past the form, defeating the auto-generate-on-first-request design.
A tiny Worker with two routes:
GET /→ returns JSON with admin email, whether a bearer token exists, and whether a webhook is configured.GET /search?q=...→ uses Workers AI@cf/baai/bge-base-en-v1.5(768-dim, cosine) to embed the query and look it up in Vectorize.
- Vectorize blank fields and forced-required secrets: workers-sdk#14075
- Missing default values for bindings: Deploy to Cloudflare docs → automatic resource provisioning
- Push this folder to a new public GitHub repo.
- Update the
REPLACE_MEin the badge URL above. - Click the badge.
- Walk through the form and observe the three failures.