cloudflare / cloudflare/cloudflare-docs

wrangler deploy: automatic resource provisioning is on by default and documented only in a changelog (--x-auto-create nowhere)

Open
#32,978 2 comments 0 reactions 3 assignees Claimed by @vy-ton View on GitHub
product:changelog product:workers
Dominant language
MDX
Stars
5.2k
Forks
16.7k
Avg merge
2d 6h
Merged PRs (30d)
337

Description

### Which page

https://developers.cloudflare.com/workers/wrangler/commands/ (the `wrangler deploy` section)

### What's missing

Automatic resource provisioning is on by default and can create real KV namespaces, R2 buckets, and D1 databases on your account during a deploy. The reference docs for `wrangler deploy` don't mention it.

Right now the only place it appears is a changelog entry from 2025-10-24, [Automatic resource provisioning for KV, R2, and D1](https://developers.cloudflare.com/changelog/2025-10-24-automatic-resource-provisioning/), which names `--no-x-provision`.

A changelog is the wrong home for this. Someone reading `wrangler deploy`'s options today has no way to learn that a binding declared without an ID will be created for them.

### Two flags, and one is undocumented anywhere

Both are `hidden: true` in Wrangler, so `--help` lists neither. Read from wrangler 4.125.0's own source:

```js
"experimental-provision": {
describe: "Experimental: Enable automatic resource provisioning",
type: "boolean",
default: true,
hidden: true,
alias: ["x-provision"]
},
"experimental-auto-create": {
describe: "Automatically provision draft bindings with new resources",
type: "boolean",
default: true,
hidden: true,
alias: "x-auto-create"
}
```

Searching the docs repo: `x-provision` appears once, in that changelog. `experimental-provision`, `x-auto-create`, and `experimental-auto-create` appear nowhere at all.

Both are accepted by `wrangler deploy` and `wrangler versions upload`. Verified by exit code, since `--help` won't tell you:

```
wrangler deploy --dry-run --x-bogus-flag exit 1
wrangler deploy --dry-run --x-provision=false exit 0
wrangler deploy --dry-run --x-auto-create=false exit 0
wrangler versions upload --dry-run --x-provision=false exit 0
```

### Why it matters

Anyone running a policy where no deploy path may create account resources has to pin both flags off, on every deploy command, including the ones configured in the Workers Builds dashboard. That's hard to get right when one flag is documented in a changelog and the other isn't documented at all.

### Suggested addition

Document both flags in the `wrangler deploy` options, state that each defaults to `true`, and say which commands honour them. A note that `wrangler versions upload` takes them too would help, because the changelog only talks about `deploy`.

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.