wrangler-4-127-0-17-b
Claude Code's read-only tools, web search on, ludion sync on
Question
Is there a wrangler config setting for a Workflow's concurrency limit?
Answer key
- A correct answer says
- A Workflow's maximum number of concurrently running instances can be set with `workflows[].concurrency.limit` in the Wrangler config.
- The stale answer
- Workflows have no per-workflow concurrency setting in Wrangler config; only account limits apply.
Answer
Yes. Each workflow entry has a `concurrency.limit` setting, which is the most Workflow instances that can run at the same time. It was added in wrangler 4.127.0. The config schema of your installed wrangler 4.148.0 includes it (`node_modules/wrangler/config-schema.json`, around line 4025):
```toml
[[workflows]]
name = "my-workflow"
binding = "MY_WORKFLOW"
class_name = "MyWorkflow"
[workflows.concurrency]
limit = 10
```
In `wrangler.jsonc` it's `"concurrency": { "limit": 10 }` inside the workflow object. Don't confuse it with the separate `limits` block, which holds other per-workflow limits, or with `max_concurrency` on Queue consumers.Grade
correct
The judge's reason: It states that per-workflow `concurrency.limit` exists in the Wrangler workflows config and does not claim only account limits apply.
Session log
Tool call: Grep
{ "pattern": "concurrency", "path": "C:\\Users\\haya0\\AppData\\Local\\Temp\\ludion-bench-PJ9p7U\\work\\node_modules\\wrangler\\config-schema.json", "output_mode": "content", "-C": 6 }Tool output
606- }, 607- "dead_letter_queue": { 608- "type": "string", 609- "description": "The queue to send messages that failed to be consumed.", 610- "markdownDescription": "The queue to send messages that failed to be consumed." 611- }, 612: "max_concurrency": { 613- "type": [ 614- "number", 615- "null" 616- ], 617: "description": "The maximum number of concurrent consumer Worker invocations. Leaving this unset will allow your consumer to scale to the maximum concurrency needed to keep up with the message backlog.", 618: "markdownDescription": "The maximum number of concurrent consumer Worker invocations. Leaving this unset will allow your consumer to scale to the maximum concurrency needed to keep up with the message backlog." 619- }, 620- "visibility_timeout_ms": { 621- "type": "number", 622- "description": "The number of milliseconds to wait for pulled messages to become visible again", 623- "markdownDescription": "The number of milliseconds to wait for pulled messages to become visible again" 624- }, -- 2456- }, 2457- "dead_letter_queue": { 2458- "type": "string", 2459- "description": "The queue to send messages that failed to be consumed.", 2460- "markdownDescription": "The queue to send messages that failed to be consumed." 2461- }, 2462: "max_concurrency": { 2463- "type": [ 2464- "number", 2465- "null" 2466- ], 2467: "description": "The maximum number of concurrent consumer Worker invocations. Leaving this unset will allow your consumer to scale to the maximum concurrency needed to keep up with the message backlog.", 2468: "markdownDescription": "The maximum number of concurrent consumer Worker invocations. Leaving this unset will allow your consumer to scale to the maximum concurrency needed to keep up with the message backlog." 2469- }, 2470- "visibility_timeout_ms": { 2471- "type": "number", 2472- "description": "The number of milliseconds to wait for pulled messages to become visible again", 2473- "markdownDescription": "The number of milliseconds to wait for pulled messages to become visible again" 2474- }, -- 4019- } 4020- }, 4021- "additionalProperties": false, 4022- "description": "Optional limits for the Workflow", 4023- "markdownDescription": "Optional limits for the Workflow" 4024- }, 4025: "concurrency": { 4026- "type": "object", 4027- "properties": { 4028- "limit": { 4029- "type": "number", 4030- "description": "Maximum number of Workflow instances that can run concurrently", 4031- "markdownDescription": "Maximum number of Workflow instances that can run concurrently" 4032- } 4033- }, 4034- "additionalProperties": false, 4035: "description": "Optional concurrency configuration for the Workflow", 4036: "markdownDescription": "Optional concurrency configuration for the Workflow" 4037- }, 4038- "schedules": { 4039- "anyOf": [ 4040- { 4041- "type": "string" 4042- }, -- 4639- }, 4640- "dead_letter_queue": { 4641- "type": "string", 4642- "description": "The queue to send messages that failed to be consumed.", 4643- "markdownDescription": "The queue to send messages that failed to be consumed." 4644- }, 4645: "max_concurrency": { 4646- "type": [ 4647- "number", 4648- "null" 4649- ], 4650: "description": "The maximum number of concurrent consumer Worker invocations. Leaving this unset will allow your consumer to scale to the maximum concurrency needed to keep up with the message backlog.", 4651: "markdownDescription": "The maximum number of concurrent consumer Worker invocations. Leaving this unset will allow your consumer to scale to the maximum concurrency needed to keep up with the message backlog." 4652- }, 4653- "visibility_timeout_ms": { 4654- "type": "number", 4655- "description": "The number of milliseconds to wait for pulled messages to become visible again", 4656- "markdownDescription": "The number of milliseconds to wait for pulled messages to become visible again" 4657- }, -- 6237- } 6238- }, 6239- "additionalProperties": false, 6240- "description": "Optional limits for the Workflow", 6241- "markdownDescription": "Optional limits for the Workflow" 6242- }, 6243: "concurrency": { 6244- "type": "object", 6245- "properties": { 6246- "limit": { 6247- "type": "number", 6248- "description": "Maximum number of Workflow instances that can run concurrently", 6249- "markdownDescription": "Maximum number of Workflow instances that can run concurrently" 6250- } 6251- }, 6252- "additionalProperties": false, 6253: "description": "Optional concurrency configuration for the Workflow", 6254: "markdownDescription": "Optional concurrency configuration for the Workflow" 6255- }, 6256- "schedules": { 6257- "anyOf": [ 6258- { 6259- "type": "string" 6260- },Agent
Yes. Each workflow entry has a `concurrency.limit` setting, which is the most Workflow instances that can run at the same time. It was added in wrangler 4.127.0. The config schema of your installed wrangler 4.148.0 includes it (`node_modules/wrangler/config-schema.json`, around line 4025): ```toml [[workflows]] name = "my-workflow" binding = "MY_WORKFLOW" class_name = "MyWorkflow" [workflows.concurrency] limit = 10 ``` In `wrangler.jsonc` it's `"concurrency": { "limit": 10 }` inside the workflow object. Don't confuse it with the separate `limits` block, which holds other per-workflow limits, or with `max_concurrency` on Queue consumers.