Skip to content

Range request on Object URL does not include the "end" byte #60382

@severo

Description

@severo

Version

v24.6.0

Platform

Linux msi 6.14.0-34-generic #34-Ubuntu SMP PREEMPT_DYNAMIC Wed Sep 17 09:21:29 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Subsystem

URL or Fetch

What steps will reproduce the bug?

const u = URL.createObjectURL(new Blob(["abcde"]))
const r = await fetch(u, {headers: {range: 'bytes=1-3'}})
console.log(await r.text())
console.log(r.headers.get('content-length'))

How often does it reproduce? Is there a required condition?

No required condition.

What is the expected behavior? Why is that the expected behavior?

The last byte of the range should be included in the response. In the example above, content-length header should be 3, and the text should be "bcd".

In a browser:

Image

What do you see instead?

The content-length header is 2, and the text is "bc".

In the Node.js console:

Image

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions