Cloudflare's 14 August 2026 WebSocket data transfer fix names no affected period

Cloudflare's WebSocket reporting fix landed 14 August 2026 with no dated affected period, so Data Transfer steps up with no backfill and no baseline.

Read time
10 min
Word count
1.7K
Sections
10
FAQs
8
Share
Cloudflare WebSocket data transfer reporting fix, 14 August 2026, with no dated affected period
Cloudflare's 14 August 2026 WebSocket reporting fix left the affected period undated.
On this page · 10 sections
  1. What actually changed
  2. Why the step-up lands where nobody is watching for it
  3. The two datasets will never reconcile
  4. Who this hits, and how to tell if it is you
  5. What to do this week
  6. India-specific considerations
  7. What is still unknown
  8. FAQ
  9. How eCorpIT can help
  10. References

Summary. On 14 August 2026 Cloudflare fixed WebSocket data transfer reporting so that HTTP Traffic Analytics and HTTP request logs count bytes moved across the whole connection instead of just the opening 101 Switching Protocols handshake. The changelog says the undercount applied "during the affected period" and never says when that period started or ended. That single missing date is the operational problem: your Data Transfer panel and your EdgeResponseBytes series step up with no backfill, no marker, and nothing to anchor a before-and-after against. The Zone Analytics page the changelog points at is dated 5 June 2026 and still defines Data Transfer as "Total HTTP data transferred in responses", with no mention of WebSocket bytes. The one dataset that was correct throughout, websocket_analytics (dated 29 June 2026), is a Logpush job you had to have already enabled, and it counts four directional byte fields where EdgeResponseBytes counts one. On Workers, WebSocket endpoints usually run on Durable Objects, billed at $12.50 per million GB-s, and container egress in North America and Europe is $0.025 per GB above the included 1 TB, per Cloudflare's plans page as of 23 August 2026.

What actually changed

Cloudflare's changelog entry is short and precise about the mechanism, and vague about everything a capacity planner needs. Verbatim: "During the affected period, reporting captured only the initial 101 Switching Protocols handshake for some WebSocket connections, which could underreport their data transfer."

Two qualifiers do a lot of work there. "Some WebSocket connections" means the undercount was not uniform, so a flat multiplier will not reconstruct the old numbers. "The affected period" has no start date and no end date anywhere in the post, and no other Cloudflare page dates it either.

The company is explicit that this is an accounting correction rather than a traffic event: "The change reflects restored accounting of existing WebSocket traffic, not an increase in traffic caused by this change." Nothing about the connections themselves changed. Only the counting did.

Why the step-up lands where nobody is watching for it

The WebSockets product page was itself updated on 14 August 2026, the same day as the fix, and it sets out how Cloudflare measures a connection:

  • Requests: only the initial upgrade request counts as an HTTP request. A bidirectional message stream running for hours is still one long-lived HTTP request.
  • Bandwidth: Cloudflare measures data transfer sent from Cloudflare to the client, so messages travelling from the WebSocket server behind Cloudflare out to the client are what count.

Put those two together and the shape of the distortion is clear. Request counts never moved, because they were always one per connection. Byte counts moved, because they were previously capped at a handshake. Any alert threshold, chargeback model or anomaly rule keyed on bytes per request for a WebSocket-heavy zone now sits on a different scale than the one it was tuned against, while the request count that would normally corroborate a jump stayed flat.

That page also carries a small defect worth knowing about before you go looking. It sends readers to Traffic Analytics using the anchor #traffic, but the Zone Analytics page has no such heading. Its section anchors are #http-traffic, #security, #performance, #workers and #logs. The changelog uses #http-traffic and lands correctly; the product page updated on the day of the fix does not.

The two datasets will never reconcile

This is the part that costs teams an afternoon. Cloudflare offers two byte counts for the same traffic and they measure different things.

Field or panel Source and doc date What it counts
EdgeResponseBytes HTTP requests Logpush dataset, 15 July 2026 "Number of bytes returned by the edge to the client" — one direction only
Data Transfer panel Zone Analytics, 5 June 2026 "Total HTTP data transferred in responses", WebSocket bytes undocumented
BytesSentClient websocket_analytics, 29 June 2026 Bytes sent to the client
BytesReceivedClient websocket_analytics, 29 June 2026 Bytes received from the client
BytesSentOrigin websocket_analytics, 29 June 2026 Bytes sent to the origin
BytesReceivedOrigin websocket_analytics, 29 June 2026 Bytes received from the origin

Four directional counters against one. If you sum websocket_analytics bytes and expect them to match a Data Transfer figure, you will be roughly double, and the gap will vary with how chatty your clients are relative to your server. The changelog presents the Logpush dataset as the thing that "continues to provide per-connection directional byte counts" without saying that it therefore cannot be used to validate the corrected HTTP-side number.

There is a timing trap on top of the units trap. Per the WebSockets page, EdgeStartTimestamp and EdgeStopTimestamp in HTTP request logs "represent the duration of the WebSocket connection (they do not represent the initial HTTP connection)". A log line for a connection that stays open across a day boundary lands its bytes when the connection closes, not when the bytes moved. For long-lived connections the corrected accounting is right in total and wrong per hour.

Who this hits, and how to tell if it is you

You are exposed if any of the following is true.

Your zone proxies WebSocket traffic at all. WebSockets are supported on every Cloudflare plan and need no configuration to be proxied, so this is not an Enterprise-only condition even though the bandwidth measurement guidance in the docs is addressed to Enterprise customers. Plan pricing on 23 August 2026 is $20 per month billed annually for Pro, or $25 billed monthly, and $200 per month billed annually for Business, or $250 billed monthly.

You built anomaly alerting or a monthly capacity report on the Data Transfer panel or on EdgeResponseBytes. Those series changed level without a documented date.

You use Argo. Cloudflare's compatibility table marks Argo as not compatible with WebSockets, so a zone that mixes both has WebSocket bytes following a different path from the rest of its traffic.

You rely on the WAF to bound WebSocket payloads. The docs are blunt here: the initial HTTP 101 request is subject to managed rules, custom rules and rate limiting rules, but "once a connection has been established, the WAF does not perform any further inspections". Those uninspected bytes are now counted, so security and billing views diverge further than they did.

Backfilling is not straightforward either. The GraphQL Analytics API limits page, dated 23 April 2026, caps a zone-scoped query at 10 zones and an account-scoped query at 1 account, with a default quota of 300 queries over a rolling 5-minute window. Node limits govern how far back each dataset goes and vary by plan, and the page directs you to per-zone settings rather than publishing the numbers.

What to do this week

Rebase, do not reconcile. Treat 14 August 2026 as a break in the series, mark it in your dashboards, and rebuild WebSocket byte baselines from data after that date. Trying to reconstruct the pre-fix numbers is wasted effort when the undercount only applied to "some" connections.

Enable the websocket_analytics Logpush dataset now if it is not already running, because it is the only source with directional detail, and it produces nothing retroactively. Its fields are documented as BytesReceivedClient, BytesReceivedOrigin, BytesSentClient and BytesSentOrigin.

Re-tune bytes-per-request alerts separately from request-rate alerts, since only one of the two moved. If you also run Cloudflare Web Analytics, where soft navigation counting changed on 21 August 2026, you now have two unbackfilled step changes a week apart in the same reporting stack, and separating them after the fact is harder than annotating them today.

Check whether Access sits in front of your WebSocket endpoints. Worker-level Access policies return 403 on WebSocket upgrades, which is a different failure from an accounting one but shows up in the same graphs.

Finally, if your WebSocket endpoints run on Durable Objects, price the corrected volume against the metered lines rather than the zone bandwidth line. Durable Objects requests are $0.15 per million and duration is $12.50 per million GB-s, with 100,000 requests and 13,000 GB-s per day included on the free tier. Headless browser concurrency is metered too, which is why the Browser Run limit increase and its billing page disagreed.

India-specific considerations

For Indian teams running real-time products such as trading dashboards, live chat or gaming, the practical exposure is contractual rather than technical. A monthly bandwidth figure quoted to a client from the Data Transfer panel before 14 August 2026 may understate the actual volume, and reissuing it now looks like a price rise unless the changelog is cited in the same breath. Teams handling personal data over those connections should also note that the corrected accounting does not change what is logged: the websocket_analytics dataset includes ClientIP and ClientRequestHost, which are personal data under India's Digital Personal Data Protection Act 2023, so retention settings on that Logpush destination deserve a look before you turn it on. Cost work here belongs with the rest of your cloud spend reduction programme rather than as a one-off ticket.

What is still unknown

Cloudflare has not published the start or end date of the affected period, has not said what share of connections were affected, and has not stated whether historical analytics were corrected or only forward-looking counting was fixed. The phrase "restored accounting of existing WebSocket traffic" reads as forward-looking, but the post does not say so outright. Until Cloudflare dates the window, any claim about how much your WebSocket bandwidth actually grew is a guess.

FAQ

How eCorpIT can help

Rebasing analytics after an undated vendor correction is the unglamorous half of FinOps work: someone has to decide which series are trustworthy, re-tune the alerts that fired on the old scale, and document the break so next quarter's review does not relitigate it. eCorpIT runs cloud cost and observability reviews for teams on Cloudflare, AWS and Azure, with senior engineers doing the analysis rather than a dashboard export. If your WebSocket bandwidth numbers moved this month and you cannot explain the step, book a cloud cost and observability review and we will work through the datasets with your team.

References

  1. WebSocket reporting now includes full connection data transfer, Cloudflare changelog, 14 August 2026
  1. WebSockets, Cloudflare network documentation, last updated 14 August 2026
  1. Zone Analytics, Cloudflare analytics documentation, last updated 5 June 2026
  1. WebSocket Analytics Logpush dataset, last updated 29 June 2026
  1. HTTP requests Logpush dataset, last updated 15 July 2026
  1. GraphQL Analytics API limits, last updated 23 April 2026
  1. GraphQL Analytics API overview, last updated 23 April 2026
  1. Cloudflare plans and pricing, retrieved 23 August 2026
  1. Logpush job setup, Cloudflare Logs documentation, last updated 23 April 2026
  1. Cloudflare changelog RSS feed, retrieved 23 August 2026
  1. Argo Smart Routing, Cloudflare documentation
  1. Using WebSockets with Durable Objects, Cloudflare documentation, last updated 19 June 2026

Last updated: 23 August 2026.

Frequently asked

Quick answers.

01 What did Cloudflare change on 14 August 2026?
Cloudflare fixed WebSocket data transfer reporting so HTTP Traffic Analytics and HTTP request logs count bytes across the full connection rather than only the opening 101 Switching Protocols handshake. The company describes it as restored accounting of existing traffic, not an increase in traffic caused by the change itself.
02 When was the affected period?
Cloudflare has not said. The changelog refers only to "the affected period" with no start date and no end date, and no other Cloudflare documentation page dates it. That is why the safest response is to treat 14 August 2026 as a break in the series and rebuild baselines forward from it.
03 Will my Cloudflare bill go up?
The changelog states the correction reflects restored accounting rather than new traffic, so the underlying volume is unchanged. What changes is the reported figure. Whether that alters an invoice depends on your contract, since the documented bandwidth measurement guidance for WebSockets is addressed to Enterprise customers.
04 Why do websocket_analytics and EdgeResponseBytes disagree?
They measure different things. EdgeResponseBytes is documented as the number of bytes returned by the edge to the client, one direction only. The websocket_analytics Logpush dataset carries four directional counters covering client and origin in both directions, so summing them roughly doubles the HTTP-side figure.
05 Can I backfill the missing bytes?
Not reliably. The undercount applied to "some" connections rather than all of them, so no single multiplier reconstructs it. The websocket_analytics dataset produces no retroactive data either, meaning it only helps if the Logpush job was already running before the reporting fix landed.
06 Does this affect WebSocket security inspection?
No, and that gap predates the fix. Cloudflare documents that the initial HTTP 101 request is subject to managed rules, custom rules and rate limiting rules, but once a connection is established the WAF performs no further inspections. The corrected accounting now counts bytes the WAF never inspected.
07 Are WebSockets available on every Cloudflare plan?
Yes. Cloudflare's WebSockets documentation states that WebSockets are supported on all Cloudflare plans and that proxied WebSocket connections need no additional configuration. Plan pricing as of 23 August 2026 runs from $0 per month on Free to $200 per month billed annually for Business, with Enterprise on contract.
08 What should I check first?
Annotate 14 August 2026 in every dashboard that plots Data Transfer or EdgeResponseBytes for a zone carrying WebSocket traffic, then confirm whether the websocket_analytics Logpush job is enabled. Those two steps take an hour and preserve the ability to reason about the next reporting change.

About the author

Manu Shukla

Founder & Director

Founder of eCorpIT. Hands-on engineer leading senior-only delivery for AI apps, custom software, and cloud systems for global clients.

Subscribe

One engineering note a week. No fluff, no spam.

Senior-architect playbooks on AI agents, mobile apps, cloud, security, data, and marketing — delivered every Wednesday.

Past the reading

Read enough. Let's build something.

A senior architect responds in 24 working hours with scope, indicative cost, and a timeline. NDA before any technical conversation.