Workers don't support Range requests on gzip files

I have a Worker that fetches the first 10 bytes of a file on AWS S3, but oscillates between returning 10 bytes and the entire file! As other issues suggested, I turned off caching for that route and set Content-Encoding: gzip headers but that did not help. I do not see this issue when querying S3 directly, only on Workers.

To reproduce this:

URL=https://test-aws-gz-range-requests.42basepairs.com
for i in $(seq 1 10); do
    response="$(curl -H "accept-encoding: gzip, compress, deflate, br, identity" -H "Range: bytes=0-1000" -s -I $URL)"
    echo "$response" | head -n1
    echo "$response" | grep content-length
done

The output shows the oscillation:

HTTP/2 200 
content-length: 2324350221

HTTP/2 206 
content-length: 10

HTTP/2 206 
content-length: 10

HTTP/2 200 
content-length: 2324350221

HTTP/2 206 
content-length: 10

The worker code (it downloads a file from a public S3 bucket so no auth required):

const URL_GZIP = "https://1000genomes.s3.amazonaws.com/technical/reference/GRCh38_reference_genome/other_mapping_resources/ALL_20141222.dbSNP142_human_GRCh38.snps.vcf.gz";

addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) })
async function handleRequest(request) {
  return await fetch(URL_GZIP, { headers: { "Range": "bytes=0-9" } });
}