Claude Opus 5.5

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.

The change's lesson

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.

Answering cost $0.11.

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.

The judge's log

Session log

What the agent wrote, the tools it called, and what they returned, from docs/bench/2026-10-11-done3/runs/B-project-sync/wrangler-4-127-0-17-b.jsonl. Thinking and the session's settings are left out. The raw log

  1. 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
    }
  2. 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-            },
  3. 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.