Limits (23)
Last updated Apr 21, 2026 Caution
The following limits apply to both Workers Paid and Workers Free plans with the exception of Message Retention, which is non-configurable at 24 hours for the Workers Free plan.
| Feature | Limit |
|---|---|
| Queues | 10,000 per account |
| Message size | 128 KB <sup>1</sup> |
| Message retries | 100 |
| Maximum consumer batch size | 100 messages |
Maximum messages per sendBatch call |
100 (or 256KB in total) |
| Maximum Batch wait time | 60 seconds |
| Per-queue message throughput | 5,000 messages per second <sup>2</sup> |
| Message retention period <sup>3</sup> | Configurable up to 14 days. |
| Per-queue backlog size <sup>4</sup> | 25GB |
| Concurrent consumer invocations | 250 <sup>push-based only</sup> |
| Consumer duration (wall clock time) | 15 minutes <sup>5</sup> |
| Consumer CPU time | Configurable to 5 minutes |
visibilityTimeout (pull-based queues) |
12 hours |
delaySeconds (when sending or retrying) |
24 hours |
<sup>1</sup> 1 KB is measured as 1000 bytes. Messages can include up to \~100 bytes of internal metadata that counts towards total message limits.
<sup>2</sup> Exceeding the maximum message throughput will cause the send() and sendBatch() methods to throw an exception with a Too Many Requests error until your producer falls below the limit.
<sup>3</sup> Messages in a queue that reach the maximum message retention are deleted from the queue. Queues does not delete messages in the same queue that have not reached this limit.
<sup>4</sup> Individual queues that reach this limit will receive a Storage Limit Exceeded error when calling send() or sendBatch() on the queue.
<sup>5</sup> Refer to Workers limits.
Need a higher limit?
To request an adjustment to a limit, complete the Limit Increase Request Form ↗︎. If the limit can be increased, Cloudflare will contact you with next steps.
Increasing Queue Consumer Worker CPU Limits
Queue consumer Workers are Worker scripts, and share the same per invocation CPU limits as any Workers do. Note that CPU time is active processing time: not time spent waiting on network requests, storage calls, or other general I/O.
By default, the maximum CPU time per consumer Worker invocation is set to 30 seconds, but can be increased by setting limits.cpu_ms in your Wrangler configuration:
{
// ...rest of your configuration...
"limits": {
"cpu_ms": 300000, // 300,000 milliseconds = 5 minutes
},
// ...rest of your configuration...
}
[limits]
cpu_ms = 300_000
To learn more about CPU time and limits, review the Workers documentation.
Wall time limits by invocation type
Wall time (also called wall-clock time) is the total elapsed time from the start to end of an invocation, including time spent waiting on network requests, I/O, and other asynchronous operations. This is distinct from CPU time, which only measures time the CPU spends actively executing your code.
The following table summarizes the wall time limits for different types of Worker invocations across the developer platform:
| Invocation type | Wall time limit | Details |
|---|---|---|
| Incoming HTTP request | Unlimited | No hard limit while the client remains connected. Workers requests are subject to the grace period for runtime updates. A Worker that is still streaming a response body remains active. waitUntil() extends execution for up to 30 seconds after the response or disconnect. |
| Cron Triggers | 15 minutes | Scheduled Workers have a maximum wall time of 15 minutes per invocation. |
| Queue consumers | 15 minutes | Each consumer invocation has a maximum wall time of 15 minutes. |
| Durable Object alarm handlers | 15 minutes | Alarm handler invocations have a maximum wall time of 15 minutes. |
| Durable Objects (RPC / HTTP) | Unlimited | No hard limit while the caller stays connected to the Durable Object. Durable Objects remain active while a request, RPC call, response stream, WebSocket, or pending I/O is in flight. |
| Workflows (per step) | Unlimited | Each step can run for an unlimited wall time. Individual steps are subject to the configured CPU time limit. |
Was this helpful?
YesNo
On this page
{"@context":"https://schema.org","@type":"TechArticle","@id":"https://developers.cloudflare.com/queues/platform/limits/#page","headline":"Limits","description":"Cloudflare Queues account limits for message size, throughput, retention, and concurrency.","url":"https://developers.cloudflare.com/queues/platform/limits/","inLanguage":"en","image":"https://developers.cloudflare.com/queues/platform/limits/og.png?v=023a88e77a517650","dateModified":"2026-04-21","publisher":{"@type":"Organization","name":"Cloudflare","description":"One platform for your apps, agents, and workforce. Build, secure, and scale without managing infrastructure","url":"https://www.cloudflare.com/","sameAs":["https://github.com/cloudflare","https://www.linkedin.com/company/cloudflare","https://x.com/cloudflare"],"logo":{"@type":"ImageObject","url":"https://developers.cloudflare.com/logo.svg"},"address":{"@type":"PostalAddress","streetAddress":"101 Townsend St","addressLocality":"San Francisco","addressRegion":"CA","postalCode":"94107","addressCountry":"US"},"contactPoint":[{"@type":"ContactPoint","contactType":"Customer Support","url":"https://support.cloudflare.com/","availableLanguage":["English"]},{"@type":"ContactPoint","contactType":"Sales","url":"https://www.cloudflare.com/contact/","availableLanguage":["English"]}]},"isPartOf":{"@type":"WebSite","@id":"https://developers.cloudflare.com/#website","name":"Cloudflare Docs","url":"https://developers.cloudflare.com/"}}
description: Cloudflare Queues pricing for standard operations with included free usage. title: Pricing image: https://developers.cloudflare.com/queues/platform/pricing/og.png?v=f8e8dd0441bcf01e
Documentation Index
Fetch the complete documentation index at: https://developers.cloudflare.com/queues/llms.txt
Use this file to discover all available pages before exploring further.
Docs