The dialog calls /albums via window.FRAME_API, but that's repointed to this widget's own API base while a dialog is open (see frame_layout.js) -- /albums is frame-level (lists the owner's whole Immich library, not scoped to one photo widget), so it needs window.FRAME_BASE_API instead. The button silently 404'd since the resulting URL never existed.