---
title: "Fetch streams are great, but not for measuring upload/downloading progress"
url: https://daily.dev/posts/fetch-streams-are-great-but-not-for-measuring-upload-downloading-progress-c0sqibvgf
source_url: https://jakearchibald.com/2025/fetch-streams-not-for-progress/
type: article
source: "Jake Archibald"
published: 2025-09-15T16:16:15.704Z
updated: 2025-09-15T16:16:43.817Z
tags: ["webdev", "javascript"]
reading_time: 6
upvotes: 34
comments: 0
language: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Fetch streams are great, but not for measuring upload/downloading progress

**[Jake Archibald](https://daily.dev/sources/jakearchibald)** · 6 min read · 34 upvotes · 0 comments

## Summary

Fetch streams are commonly misused for measuring upload/download progress, but they provide inaccurate results because they measure when data is buffered rather than actually transmitted. For downloads, Content-Encoding issues cause decoded chunks to exceed Content-Length values. For uploads, streams measure when fetch takes data from your stream, not when it's successfully sent over the network. XMLHttpRequest remains the best current solution for progress tracking, while a new fetch observer API is being developed to properly address this gap.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://jakearchibald.com/2025/fetch-streams-not-for-progress/>

## Similar posts on daily.dev

- [We deserve a better streams API for JavaScript](https://daily.dev/posts/we-deserve-a-better-streams-api-for-javascript-x39tdohil) · Cloudflare · 75 upvotes · 3 comments
- [Angular 22 Quietly Replaced XHR -Here’s What Actually Changes For You \(Part 5\)](https://daily.dev/posts/angular-22-quietly-replaced-xhr--here-s-what-actually-changes-for-you-part-5--7cj63ndaa) · JavaScript in Plain English · 1 upvotes · 0 comments

---

Tags: [#webdev](https://daily.dev/tags/webdev), [#javascript](https://daily.dev/tags/javascript)

[View this post on daily.dev](https://daily.dev/posts/fetch-streams-are-great-but-not-for-measuring-upload-downloading-progress-c0sqibvgf)
