Skip to content

Build Not yet confirmed elsewhere1 publisher 2 min read Published

Cloudflare takes Hyperdrive's MySQL pooler to GA after 20 bug fixes

Cloudflare has made Hyperdrive's MySQL support generally available after 20 bug fixes since the beta. Teams running MySQL behind Workers can now weigh it for production, with query caching as the feature to test hardest.

The Engineer · Build desk

How we use AI Send a correction

Illustration accompanying Cloudflare takes Hyperdrive's MySQL pooler to GA after 20 bug fixes
Generated illustration
The error rate was one tenth of the target's room Rate of the empty-response error, set against the 99.99% availability target Cloudflare aimed to validate during the beta.

Three figures. The empty-response error occurred about 0.001% of the time. A 99.99% availability target leaves 0.01% of room, and the 0.001% fault rate is one tenth of that room. Cloudflare's production availability target is 99.99%.

The error rate was one tenth of the target's room
FigureValueNoteClaim
Empty-response error rate, about0.001%6
Room a 99.99% target leaves0.01%19
Availability target99.99%4

What happened

  • The fault appeared only on Hyperdrive instances with caching enabled, which pointed Cloudflare's search at the MySQL cache path.
  • Hyperdrive negotiated utf8, an alias for utf8mb3 that covers 1-3 bytes per code point, so emojis came back wrong until the handshake moved to utf8mb4.
  • COM_RESET_CONNECTION restores the server's default encoding, so on a latin1 server a negotiated utf8mb4 connection turned into latin1 after cleanup.

Why it matters

  • capability MySQL users on Workers get the pooling and CDN query caching that Postgres users had first, now as a generally available feature.
  • exposure A fault at roughly one query in 100,000 surfaced through the heaviest MySQL user, so teams with less traffic had less chance of noticing it on their own.
  • cost Connection cleanup now costs a second command per reset, and servers that default to latin1 are the ones whose data the fix protects.

Cloudflare's post puts the gap between beta and GA at "just 20 bug fixes in a trenchcoat" [3]. The beta had one stated job: confirm that real customer traffic met a production availability target of 99.99% [4]. Cloudflare tracks that by counting how often a Worker's client connection ends in a Hyperdrive-related error [5].

A 99.99% target leaves 0.01% of room [17]. The caching fault ran at about 0.001% [6], which is one in 100,000 [18] and a tenth of that room [19]. The comparison is loose. The availability metric counts errored connections, and what the customer reported was an empty response where a non-empty one was always expected [7]. We think a fault at that rate shows up at high volume before it shows up in a test suite.

Cloudflare first combed its telemetry, raised the trace rate on that Hyperdrive instance and searched for network problems. None of it explained the empty responses [8]. At 0.001%, end-to-end traces of a failure were hard to catch [6]. The one clue was that the bug appeared only with caching enabled, so Cloudflare suspected Hyperdrive's MySQL caching [9]. That cache stores common queries in Cloudflare's global CDN cache to cut latency and origin load [10].

The two encoding bugs share a cause. Character set is connection state, and something resets it. The reset is deliberate: Hyperdrive runs COM_RESET_CONNECTION so no session-level state leaks between checkouts [12]. The fix for the side effect is one more command. After every reset, Hyperdrive sets the encoding to utf8mb4 again [13].

The reason to pool at all is cost. Opening a SQL connection takes at least five network round trips, and Cloudflare calls one connection per Worker request impractical [14]. MySQL fares better than Postgres here because it does not give each connection an OS process, but a large connection count can still run into resource issues [15].

The excerpt of the post we reviewed breaks off as it starts to describe Hyperdrive's cache topology. The root cause of the empty responses and any measured availability figure for GA are therefore not covered here. Cloudflare titled the post "Inside Hyperdrive: How we solved a rare Hyperdrive MySQL caching bug" [16].

What to watch

  • Cloudflare's explanation of the root cause, which depends on how a Hyperdrive instance interacts with the CDN cache.
  • A published availability figure for MySQL against the 99.99% target the beta was meant to validate.
  • Reports of empty responses on caching-enabled MySQL instances after the GA release.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence50
Adoption
Insufficient
Hype gap+10
Incentives
Insufficient
Confidence55
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    Hyperdrive support for MySQL is now generally available.

    Reported Supported Source: Cloudflare blog postView cited source
  2. [2]

    Hyperdrive is Cloudflare's database connection pooler for Workers and initially supported only Postgres.

    Reported Supported Source: Cloudflare blog postView cited source
  3. [3]

    The post says the difference between beta and GA is "just 20 bug fixes in a trenchcoat."

    Reported Supported Source: Cloudflare blog postView cited source

Get this ledger inside ChatGPT. Ask about any of our stories and the answer brings its figure, each claim’s verdict and the sources. Free, no account.

Add to ChatGPTAdd to Claude

Sources

1 independent publisher whose own reporting we read for this story.

  1. blog.cloudflare.com

    1 article · October 14, 2026

    Inside Hyperdrive: How we solved a rare Hyperdrive MySQL caching bug

Share your take

Let Clarity write the post for you.

Signed-in readers get a short post drafted on this story in the register they choose — narrative, analytical, or a direct position — editable to the last word before it goes anywhere. The share buttons at the top of this story work without an account.

Topics and entities

Follow any of these and your For You feed starts watching them — no settings page required.

Loading related stories