Skip to content

Update JsRuntimeHost to pick up the UrlLib error-reporting fix - #1821

Merged
bkaradzic-microsoft merged 2 commits into
BabylonJS:masterfrom
bkaradzic-microsoft:bump-jsruntimehost-urllib-errors
Aug 7, 2026
Merged

Update JsRuntimeHost to pick up the UrlLib error-reporting fix#1821
bkaradzic-microsoft merged 2 commits into
BabylonJS:masterfrom
bkaradzic-microsoft:bump-jsruntimehost-urllib-errors

Conversation

@bkaradzic-microsoft

Copy link
Copy Markdown
Member

Problem

BabylonNative pins JsRuntimeHost at 8cd1429, which in turn pins UrlLib at e86ffb3. That UrlLib predates:

BabylonJS/UrlLib#36425c9f1 Win32: surface the real error when opening a URL fails

so on Win32 every failure to open a URL reaches JavaScript as the constant string:

Error opening URL: Unknown error opening URL

No URL, no reason. Any asset or network loading failure in a Babylon Native app is effectively undiagnosable — you cannot tell which request failed, let alone why.

Change

Move the pin to JsRuntimeHost main (9271f13), which pins UrlLib 0c99133 and therefore contains the fix.

8cd1429 is an ancestor of 9271f13 (verified with git merge-base --is-ancestor), and there is exactly one commit in between, so this is a straight fast-forward of the dependency.

Effect

Real example, from triaging a Gaussian Splatting test failure:

Before

RuntimeError: Unable to load from https://.../adobe_backpack.spz: Error opening URL: Unknown error opening URL

After

RuntimeError: Unable to load from https://.../adobe_backpack.spz: Error opening URL:
Unable to open URL 'import createSpzModule from 'https://unpkg.com/@adobe/spz@0.2.0/dist/spz.js';...'

The second message immediately identifies the real defect (ES module source text being passed where a URL is expected — see BabylonJS/Babylon.js#18776). The first is a dead end.

This is engine independent: it improves diagnosability for every graphics backend.

Validation

Built for Win32 and ran the full Playground validation catalog (680 runnable tests) before and after the bump:

PASS FAIL TIMEOUT CRASH
before (8cd1429) 619 52 8 1
after (9271f13) 618 53 8 1

The single differing test is SOGS with SH no texture lookup. It was re-run in isolation on both pins and is pre-existing flaky, not a regression:

  • old pin 8cd1429: 3 PASS / 5 FAIL over 8 runs
  • new pin 9271f13: 3 PASS / 3 FAIL over 6 runs

No other test changed status.

BabylonNative pins JsRuntimeHost at 8cd1429, which in turn pins UrlLib at
e86ffb3. That UrlLib predates

  425c9f1 Win32: surface the real error when opening a URL fails (BabylonJS#36)

so every failure to open a url on Win32 reaches JavaScript as the constant
string "Unknown error opening URL", with no indication of which url failed
or why. That makes any asset/network loading failure in a Babylon Native app
effectively undiagnosable.

Move the pin to JsRuntimeHost main (9271f13), which pins UrlLib 0c99133 and
therefore contains the fix. 8cd1429 is an ancestor of 9271f13, so this is a
straight fast-forward of the dependency.

Before:

  Error opening URL: Unknown error opening URL

After:

  Error opening URL: Unable to open URL '<the actual url>': <reason>

This is engine independent: it improves diagnosability for every graphics
backend.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 88569c10-a7ff-4373-9a58-afa9c68b8c09

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates BabylonNative’s pinned JsRuntimeHost dependency to a newer commit so that the transitive UrlLib dependency includes the Win32 error-reporting fix (surfacing the real OS error / context when opening a URL fails), improving diagnosability of network/asset load failures.

Changes:

  • Bump JsRuntimeHost FetchContent pin from 8cd1429... to 9271f13... in CMake.
  • Indirectly picks up the UrlLib Win32 error-reporting improvements described in the PR metadata.

@bkaradzic-microsoft
bkaradzic-microsoft enabled auto-merge (squash) August 6, 2026 19:07
No workflow run was created for a7deb06; this empty commit fires a
pull_request synchronize event. Auto-squash discards it at merge.
auto-merge was automatically disabled August 6, 2026 23:08

Pull request was closed

@bkaradzic-microsoft
bkaradzic-microsoft enabled auto-merge (squash) August 6, 2026 23:08
@bkaradzic-microsoft
bkaradzic-microsoft merged commit 803909a into BabylonJS:master Aug 7, 2026
65 of 66 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants