Describe the bug
If the promise given to ColdObservable.from() rejects, the subscriber's error callback is not called. Instead, an unhandled promise rejection reports TypeError: subscriber[errorSubscriber] is not a function.
A rejected promise passed to the polyfilled Observable.from(), or returned from [mergeMap], reaches the subscriber's error callback as expected.
Expected behavior
Save the following as repro.mjs in an empty directory, then run:
npm install rxjs@9.0.0-beta.0
node repro.mjs
import { ColdObservable } from "rxjs"
import { mergeMap } from "rxjs/merge-map"
process.on("unhandledRejection", (e) => console.log("UNHANDLED REJECTION:", e?.message))
const observer = (label) => ({
next: (v) => console.log(label, "next", v),
error: (e) => console.log(label, "error ->", e?.message),
complete: () => console.log(label, "complete"),
})
ColdObservable.from(Promise.reject(new Error("cold from"))).subscribe(observer("cold"))
Observable.from(Promise.reject(new Error("polyfill from"))).subscribe(observer("polyfill"))
ColdObservable.from([1])[mergeMap](() => Promise.reject(new Error("mergeMap"))).subscribe(observer("mergeMap"))
Output:
polyfill error -> polyfill from
mergeMap error -> mergeMap
UNHANDLED REJECTION: subscriber[errorSubscriber] is not a function
Expected: cold error -> cold from is also logged, with no unhandled rejection.
Reproduction code
Reproduction URL
No response
Version
rxjs 9.0.0-beta.0 with @rxjs/observable-polyfill 9.0.0-beta.0
Environment
Node 26.8.2 on macOS
Additional context
We use ColdObservable.from(WebAssembly.instantiateStreaming(...)) for WASM initialization. A failed load leaves the app waiting without reaching its error handler.
Describe the bug
If the promise given to
ColdObservable.from()rejects, the subscriber'serrorcallback is not called. Instead, an unhandled promise rejection reportsTypeError: subscriber[errorSubscriber] is not a function.A rejected promise passed to the polyfilled
Observable.from(), or returned from[mergeMap], reaches the subscriber'serrorcallback as expected.Expected behavior
Save the following as
repro.mjsin an empty directory, then run:Output:
Expected:
cold error -> cold fromis also logged, with no unhandled rejection.Reproduction code
Reproduction URL
No response
Version
rxjs 9.0.0-beta.0 with @rxjs/observable-polyfill 9.0.0-beta.0
Environment
Node 26.8.2 on macOS
Additional context
We use
ColdObservable.from(WebAssembly.instantiateStreaming(...))for WASM initialization. A failed load leaves the app waiting without reaching its error handler.