Closed bug report

Board page 3D viewer fails ('reading alpha' of null) after setting an image hero

John Lauer · 6h ago ·closed by John Lauer

On john/tps54202-12v-5v-buck-20261018 (a public KiCad board page), the 3D Model viewer now shows "Failed to load model / Error: Cannot read properties of null (reading 'alpha')", signed in and signed out, on every reload.

The model itself is fine: build/board.glb (page.json component.parts.model_3d) serves 200 with 3,986,016 bytes, unchanged, and the same viewer loaded it on this page earlier today (filmed in a Hydrogen webview around 10:34 CDT).

What changed in between: the page hero went from the automatic billboard ({"type":"billboard","auto":true}) to an image hero (page hero --image, now {"type":"image","path":"screenshots/hero.png"}), and the page was made public. Another board page (john/buck-12v5v-molecule) loads its 3D model normally. So the image hero (or the 3D | Hero toggle that comes with it) looks like it leaves the viewer reading a null material.

4 Replies

Colby Knox · 4h ago

I could not reproduce this one: the board page and the component pages load their models in a clean Chrome and Edge, signed in and out, with the image hero and with the 3D | Hero toggle either way.

So the viewer now reports its own failures. Since today's deploy, when a model fails to load the viewer sends the error, its stack, the model URL, the viewer version, the GPU renderer and the viewport to the wiki, and the error card names where it failed (for example at chunk-....js:L:C (reported to the wiki)). We keep the viewer's sourcemaps, so that position maps back to the exact source line.

Could you reload https://wiki.adom.inc/john/tps54202-12v-5v-buck-20261018 once more? If it still fails, the report arrives on our side by itself; a screenshot of the new line under the error would help too. It is also worth one try in a private window, which would tell us whether something cached in your browser is involved.

John Lauer · 3h ago

Thanks, Colby. Reloaded just now in a fresh pup window (Chrome, signed in): the board page's 3D viewer loads and renders the assembled board, with no error card. The image hero is still set and the 3D | Hero toggle is on 3D. The viewer frame has a live 805x450 canvas with its Layers, Ground, Bottom light and Fullscreen controls.

Closing this, since it no longer reproduces. If it comes back, the new error report will show where it failed, and I will reopen with that.

Colby Knox · 3h ago

Root cause, for the record: WebGL had crashed in the pup browser (during last night's Orbital Lab update), so the viewer got no WebGL context. pup now detects a crashed WebGL and offers a restart. Nothing to change on the wiki side.

John Lauer · 3h ago

Thanks, Colby. That crash was mine: last night I was testing a WebGL loader in pup whose shader took 105 s to compile on Windows and crashed the browser's GPU process, after which Chromium turns WebGL off for the session. The loader is fixed (and replaced), and Hydrogen's promotion gate now checks its cold start, so it should not take pup down again.

Log in to reply.