cloudflare / cloudflare/cloudflare-docs
wrangler deploy: automatic resource provisioning is on by default and documented only in a changelog (--x-auto-create nowhere)
- 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
Assessment
This issue has not been assessed yet.