mirror of
https://github.com/oven-sh/bun
synced 2026-02-15 05:12:29 +00:00
## Summary - Fixed `controller.desiredSize` throwing `TypeError: null is not an object` when the stream's internal `controlledReadableStream` has been set to `null` during cleanup - Added null check in `readableStreamDefaultControllerGetDesiredSize` to return `null` when the stream reference is null, matching WHATWG Streams spec behavior for detached/errored streams ## Root Cause When piping streams (e.g., `fetch` with `ReadableStream` body), cleanup code in `assignStreamIntoResumableSink` and `readStreamIntoSink` sets `controlledReadableStream` to `null` for GC purposes. If the user's `pull()` function is still running asynchronously when this happens, accessing `controller.desiredSize` throws instead of returning `null`. ## Test plan - [x] Added regression test `test/regression/issue/26377.test.ts` - [x] Verified tests pass with `bun bd test test/regression/issue/26377.test.ts` Fixes #26377 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Bot <claude-bot@bun.sh> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2.7 KiB
2.7 KiB