Description
Many parallel fetch() calls, each using response.text() via a promise chain, intermittently fail with:
Error: Unable to resolve data for blob: <uuid>
Failures occur on the body read after HTTP succeeds, only when all of the following hold:
- Release build (not Debug)
- Physical iOS device (not simulator, or Android)
.then() on fetch / response.text() (not async/await for the same flow)
Code snippet
function fetchOne(url) {
return fetch(url)
.then(r => {
if (!r.ok) throw new Error(`HTTP ${r.status}`);
return r.text(); // ← fails here
})
.then(text => JSON.parse(text));
}
const urls = Array.from({length: 30}, (_, i) =>
`https://dummyjson.com/todos/${(i % 200) + 1}`);
await Promise.all(urls.map(fetchOne)); // repeat burst several times after launch
Environment
- React Native: 0.85.3
- Hermes: enabled
- Device: iPhone 13 mini
- iOS: 26.4.2
Steps to reproduce
- Clone https://github.com/xavi/RnFetchBlobConcurrencyRepro
- Connect and unlock a physical iPhone (bug doesn't occur on the simulator).
- From the repo root:
npm install
cd ios && bundle install && bundle exec pod install && cd ..
npx react-native run-ios --device --mode Release
- Launch app, tap Run burst several times (often 2–5×). Log should show
(N blob) with N > 0. With DEFAULT_BURST_COUNT of 30, roughly 1 in 4 bursts on iPhone 13 mini (iOS 26.4.2) — edit src/reproConfig.ts to tune.
React Native Version
0.85.3
Affected Platforms
Runtime - iOS
Output of npx @react-native-community/cli info
System:
OS: macOS 26.4.1
CPU: (8) arm64 Apple M2
Memory: 116.31 MB / 16.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 24.13.1
path: /Users/xavi/.nvm/versions/node/v24.13.1/bin/node
Yarn:
version: 1.22.22
path: /opt/homebrew/bin/yarn
npm:
version: 11.8.0
path: /Users/xavi/.nvm/versions/node/v24.13.1/bin/npm
Watchman: Not Found
Managers:
CocoaPods:
version: 1.16.2
path: /Users/xavi/.rbenv/shims/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 25.4
- iOS 26.4
- macOS 26.4
- tvOS 26.4
- visionOS 26.4
- watchOS 26.4
Android SDK:
Android NDK: 27.1.12297006
IDEs:
Android Studio: 2025.3 AI-253.32098.37.2534.15336583
Xcode:
version: 26.4.1/17E202
path: /usr/bin/xcodebuild
Languages:
Java:
version: 25.0.3
path: /usr/bin/javac
Ruby:
version: 3.1.2
path: /Users/xavi/.rbenv/shims/ruby
npmPackages:
"@react-native-community/cli":
installed: 20.1.0
wanted: 20.1.0
react:
installed: 19.2.3
wanted: 19.2.3
react-native:
installed: 0.85.3
wanted: 0.85.3
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: true
newArchEnabled: true
Stacktrace or Logs
Unable to resolve data for blob: 7B4027AD-B4E0-4D01-AD1E-82D231DB3359
MANDATORY Reproducer
https://github.com/xavi/RnFetchBlobConcurrencyRepro
Screenshots and Videos
No response
Description
Many parallel
fetch()calls, each usingresponse.text()via a promise chain, intermittently fail with:Failures occur on the body read after HTTP succeeds, only when all of the following hold:
.then()onfetch/response.text()(notasync/awaitfor the same flow)Code snippet
Environment
Steps to reproduce
(N blob)withN > 0. WithDEFAULT_BURST_COUNTof 30, roughly 1 in 4 bursts on iPhone 13 mini (iOS 26.4.2) — editsrc/reproConfig.tsto tune.React Native Version
0.85.3
Affected Platforms
Runtime - iOS
Output of
npx @react-native-community/cli infoStacktrace or Logs
MANDATORY Reproducer
https://github.com/xavi/RnFetchBlobConcurrencyRepro
Screenshots and Videos
No response