What's going on with Cloudflare's Brotli compression?

I have a 6,477,568-byte WASM file that I’m using for testing

if I pull this file directly from my origin server, my server Brotli-compresses it to 1,967,956 bytes, every time.

However, pulling through the Cloudflare proxy, I see that the proxy is uncompressing it and then recompressing it worse, AND the size is different every time:

Example sizes:


I can understand the files being larger because maybe the Cloudflare proxy is running an older Brotli compression library than my server, but why is the file size different every time?

The files are all valid, they all uncompress back to the original 6,477,568 bytes

so it’s not really harmful just annoying

I guess I need to slap on a CDN-Cache-Control: no-transform so that Cloudflare just passes them along with my original compression?

Why is the compression ratio worse than it should be and why is the compressed size different on each transfer?

Testing out cdn-cache-control: no-transform

according to Origin Cache Control · Cloudflare Cache (CDN) docs :

Compression is disabled when the no-transform directive is present. If the original asset fetched from the origin is compressed, it is served compressed to the visitor. If the original asset is uncompressed, compression is not applied.

But when I set no-transform, it comes off my origin compressed, then Cloudflare uncompresses it and serves it uncompressed, contrary to what the doc says