Service eligibility and regional restrictions
PuppyIP serves only compliant overseas businesses and their authorized personnel. Proxy services are not available in mainland China. The service may only be used for lawful business activities outside mainland China. Use of this service within mainland China is prohibited.
Hosting a proxy IP or server overseas does not change these restrictions. The service must not be provided to end users in mainland China through relaying, forwarding, sharing or resale. Before use, read the Terms of Service.
Key Takeaways
- The October 30 announcement sets November 4, 2026 as the enforcement date without specifying a time or time zone. Prepare for the upcoming change.
- The 50 MB limit applies to returned query results, rather than total database storage, SQL text length, or a monthly read allowance.
- Oversized results will produce a specific maximum-response-size error. Inspect SELECT *, large text fields, and queries that retrieve everything at once first.
- REST API imports and exports are excluded from this result-size limit. Other operational limits and the effect of exports on database requests still matter.
November 4 changes the query-result limit
Cloudflare’s October 30, 2026 announcement says D1 will enforce a maximum query-result size of 50 MB beginning Wednesday, November 4. A footnote in the current limits documentation gives the same date. Neither specifies a switchover time or time zone, so do not translate the date into midnight in a particular region.
Results above the limit will return this documented error: D1 query result exceeded the maximum response size limit of 50 MB. Cloudflare says the threshold covers the 99.999th percentile of its request distribution and expects most users to be unaffected. That platform statistic does not establish that your reports, synchronization jobs, or download endpoints are safe.
Find calls that retrieve too much at once
List application paths that directly retrieve large results, such as admin lists, scheduled reports, cross-system synchronization, and custom data downloads. Look for SELECT *, large text or BLOB fields the consumer does not use, and code that fetches an entire table before filtering in the application. Review the returned content, rather than only the database file size.
On an authorized, isolated sample, retain the original query, selected fields, ordering, and result size. Then request only the fields the consumer needs. This article has not queried a real database or measured an account’s workload. These checks are practical guidance, rather than a Cloudflare compatibility guarantee for an application.
Select the fields you need, then paginate verifiable results
Cloudflare recommends selecting required columns and paginating with LIMIT and OFFSET. As a hypothetical example, suppose a test table named demo_items has a unique id and a name, and the display needs only those fields. Start with SELECT id, name FROM demo_items ORDER BY id LIMIT 100 OFFSET 0; use OFFSET 100 for the next page. This illustrates the approach; it is not a ready-made migration for a business table.
A hundred rows is not a universal guarantee of staying below 50 MB. Row contents vary, so choose a page size using actual result sizes. Use stable ordering and check for omissions or duplicates against your consistency requirements when data changes during pagination. Repeatedly retrying the same oversized result will not make it smaller.
REST API imports and exports are excluded, with operational conditions
The announcement and limits page explicitly exclude import and export operations through the REST API. A custom download endpoint built around a full-table SELECT is not that exception. Do not extend it to every database, backup tool, or client. For data movement, use the official import/export documentation to identify the operation your tooling actually performs.
The current export guide also says a running export blocks other database requests, and the export is unsupported for databases containing virtual tables. The exception does not remove these conditions. Do not delete business tables merely to make an export work. Assess important data operations separately under your maintenance and recovery plan; this article has not run an import or export.
Verify the result and the specific error
In an isolated environment, compare required fields, record counts, page boundaries, and downstream output before and after the change. Confirm that the smaller result still completes the original task. Prioritize large reads instead of rewriting every small query. Not seeing this error before enforcement does not prove it will never occur afterward.
Result size, query duration, and Worker resource limits are different constraints. Use the official error table to diagnose other failures, rather than labeling every CPU, memory, or request-count error a 50 MB issue. Changing an IP address or request egress does not change database service limits.
Sources
Frequently Asked Questions
Does a paid plan automatically remove the 50 MB limit?
The announcement and limits page do not list a paid-plan or regional exemption for this limit, or promise that upgrading removes it. The general limit-increase request process does not establish that this particular limit has been raised for you. Check special requirements with Cloudflare.
Does a database larger than 50 MB become unusable?
No. This limit concerns a single query’s returned result. Database storage, row size, and other allowances have separate rules. A large database does not make every query oversized, and a smaller database is no substitute for checking the actual result.
Can I bypass the limit by putting a large query in a batch?
Do not assume so. The D1 limits documentation says individual-query limits also apply to statements within a batch. Batch invocation counting and result size are different dimensions; reduce the data each query needs to return.