#7636·rxjs

ColdObservable.from(promise) never delivers a rejection to the subscriber

Author: MaXalCreated Sep 16, 2026Updated Sep 16, 2026

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:

bash
npm install [email protected]
node repro.mjs
javascript
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

typescript

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.