Firefox parallel install won't launch

I have 2 Firefox installs: firefox (stable) and firefox_edge (nightly). When I try to launch Firefox Nightly this morning, it just goes to the stable Firefox

$ snap --version
snap    2.62+22.04
snapd   2.62+22.04
series  16
neon    22.04
kernel  6.8.0-76060800daily20240311-generic

$ sudo snap get system experimental.parallel-instances
true

$ snap info firefox
name:      firefox
summary:   Mozilla Firefox web browser
publisher: Mozilla✓
store-url: https://snapcraft.io/firefox
contact:   https://support.mozilla.org/kb/file-bug-report-or-feature-request-mozilla
license:   unset
description: |
  Firefox is a powerful, extensible web browser with support for modern web application
  technologies.
commands:
  - firefox
  - firefox.geckodriver
snap-id:      3wdHCAVyZEmYsCMFDE9qt92UV8rC8Wdk
tracking:     latest/stable
refresh-date: 4 days ago, at 17:11 EDT
channels:
  latest/stable:    126.0-2       2024-05-14 (4259) 283MB -
  latest/candidate: 126.0-2       2024-05-10 (4259) 283MB -
  latest/beta:      127.0b4-1     2024-05-20 (4304) 284MB -
  latest/edge:      128.0a1       2024-05-21 (4307) 302MB -
  esr/stable:       115.11.0esr-1 2024-05-14 (4244) 257MB -
  esr/candidate:    115.11.0esr-1 2024-05-06 (4244) 257MB -
  esr/beta:         ↑                                     
  esr/edge:         ↑                                     
installed:          126.0-2                  (4259) 283MB -

$ snap info firefox_edge
name:      firefox_edge
summary:   Mozilla Firefox web browser
publisher: Mozilla✓
store-url: https://snapcraft.io/firefox
contact:   https://support.mozilla.org/kb/file-bug-report-or-feature-request-mozilla
license:   unset
description: |
  Firefox is a powerful, extensible web browser with support for modern web application
  technologies.
commands:
  - firefox_edge
  - firefox_edge.geckodriver
snap-id:      3wdHCAVyZEmYsCMFDE9qt92UV8rC8Wdk
tracking:     latest/edge
refresh-date: today at 08:55 EDT
channels:
  latest/stable:    126.0-2       2024-05-14 (4259) 283MB -
  latest/candidate: 126.0-2       2024-05-10 (4259) 283MB -
  latest/beta:      127.0b4-1     2024-05-20 (4304) 284MB -
  latest/edge:      128.0a1       2024-05-21 (4307) 302MB -
  esr/stable:       115.11.0esr-1 2024-05-14 (4244) 257MB -
  esr/candidate:    115.11.0esr-1 2024-05-06 (4244) 257MB -
  esr/beta:         ↑                                     
  esr/edge:         ↑                                     
installed:          128.0a1                  (4307) 302MB -
 snap run --debug-log firefox_edge
2024/05/21 09:43:26.130705 logger.go:93: DEBUG: enabled debug logging of early snap startup
2024/05/21 09:43:26.131079 logger.go:93: DEBUG: executing snap-confine from /usr/lib/snapd/snap-confine
2024/05/21 09:43:26.132063 logger.go:93: DEBUG: SELinux not enabled
2024/05/21 09:43:26.132556 logger.go:93: DEBUG: creating transient scope snap.firefox_edge.firefox
2024/05/21 09:43:26.132941 logger.go:93: DEBUG: using session bus
2024/05/21 09:43:26.133713 logger.go:93: DEBUG: create transient scope job: /org/freedesktop/systemd1/job/733
2024/05/21 09:43:26.165181 logger.go:93: DEBUG: job result is "done"
2024/05/21 09:43:26.165195 logger.go:93: DEBUG: transient scope snap.firefox_edge.firefox-f690abea-9319-462f-aa4b-cb618d412a59.scope created
2024/05/21 09:43:26.165333 logger.go:93: DEBUG: waited 32.369776ms for tracking
2024/05/21 09:43:26.165342 logger.go:93: DEBUG: -- snap startup {"stage":"snap to snap-confine", "time":"1716299006.165340"}
DEBUG: -- snap startup {"stage":"snap-confine enter", "time":"1716299006.166454"}
DEBUG: umask reset, old umask was  022
DEBUG: security tag: snap.firefox_edge.firefox
DEBUG: executable:   /usr/lib/snapd/snap-exec
DEBUG: confinement:  non-classic
DEBUG: base snap:    core22
DEBUG: ruid: 10715, euid: 0, suid: 0
DEBUG: rgid: 10002, egid: 10002, sgid: 10002
DEBUG: apparmor label on snap-confine is: /usr/lib/snapd/snap-confine
DEBUG: apparmor mode is: enforce
DEBUG: -- snap startup {"stage":"snap-confine mount namespace start", "time":"1716299006.166746"}
DEBUG: creating lock directory /run/snapd/lock (if missing)
DEBUG: set_effective_identity uid:0 (change: no), gid:0 (change: yes)
DEBUG: opening lock directory /run/snapd/lock
DEBUG: set_effective_identity uid:0 (change: no), gid:10002 (change: yes)
DEBUG: opening lock file: /run/snapd/lock/.lock
DEBUG: set_effective_identity uid:0 (change: no), gid:0 (change: yes)
DEBUG: set_effective_identity uid:0 (change: no), gid:10002 (change: yes)
DEBUG: sanity timeout initialized and set for 30 seconds
DEBUG: acquiring exclusive lock (scope (global), uid 0)
DEBUG: sanity timeout reset and disabled
DEBUG: ensuring that snap mount directory is shared
DEBUG: unsharing snap namespace directory
DEBUG: set_effective_identity uid:0 (change: no), gid:0 (change: yes)
DEBUG: set_effective_identity uid:0 (change: no), gid:10002 (change: yes)
DEBUG: (experimental) ensuring snap mount and data directories are mount points
DEBUG: releasing lock 5
DEBUG: opened snap-update-ns executable as file descriptor 5
DEBUG: opened snap-discard-ns executable as file descriptor 6
DEBUG: creating lock directory /run/snapd/lock (if missing)
DEBUG: set_effective_identity uid:0 (change: no), gid:0 (change: yes)
DEBUG: opening lock directory /run/snapd/lock
DEBUG: set_effective_identity uid:0 (change: no), gid:10002 (change: yes)
DEBUG: opening lock file: /run/snapd/lock/firefox_edge.lock
DEBUG: set_effective_identity uid:0 (change: no), gid:0 (change: yes)
DEBUG: set_effective_identity uid:0 (change: no), gid:10002 (change: yes)
DEBUG: sanity timeout initialized and set for 30 seconds
DEBUG: acquiring exclusive lock (scope firefox_edge, uid 0)
DEBUG: sanity timeout reset and disabled
DEBUG: initializing mount namespace: firefox_edge
DEBUG: device cgroup not required due to base core22
DEBUG: setting up device cgroup, mode "optional"
DEBUG: libudev has current tags support
DEBUG: device /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card2 has matching current tag
DEBUG: get bpf object at path /sys/fs/bpf/snap/snap_firefox_edge_firefox
DEBUG: found existing device map
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: get next key for map 8
DEBUG: found 29 existing entries in devices map
DEBUG: delete key for c 81:1
DEBUG: delete elem in map 8
DEBUG: delete key for c 226:1
DEBUG: delete elem in map 8
DEBUG: delete key for c 1:9
DEBUG: delete elem in map 8
DEBUG: delete key for c 138:-1
DEBUG: delete elem in map 8
DEBUG: delete key for c 137:-1
DEBUG: delete elem in map 8
DEBUG: delete key for c 1:7
DEBUG: delete elem in map 8
DEBUG: delete key for c 139:-1
DEBUG: delete elem in map 8
DEBUG: delete key for c 13:0
DEBUG: delete elem in map 8
DEBUG: delete key for c 5:2
DEBUG: delete elem in map 8
DEBUG: delete key for c 143:-1
DEBUG: delete elem in map 8
DEBUG: delete key for c 81:0
DEBUG: delete elem in map 8
DEBUG: delete key for c 5:1
DEBUG: delete elem in map 8
DEBUG: delete key for c 140:-1
DEBUG: delete elem in map 8
DEBUG: delete key for c 141:-1
DEBUG: delete elem in map 8
DEBUG: delete key for c 226:129
DEBUG: delete elem in map 8
DEBUG: delete key for c 1:3
DEBUG: delete elem in map 8
DEBUG: delete key for c 1:8
DEBUG: delete elem in map 8
DEBUG: delete key for c 226:2
DEBUG: delete elem in map 8
DEBUG: delete key for c 13:259
DEBUG: delete elem in map 8
DEBUG: delete key for c 136:-1
DEBUG: delete elem in map 8
DEBUG: delete key for c 249:0
DEBUG: delete elem in map 8
DEBUG: delete key for c 5:0
DEBUG: delete elem in map 8
DEBUG: delete key for c 1:5
DEBUG: delete elem in map 8
DEBUG: delete key for c 10:200
DEBUG: delete elem in map 8
DEBUG: delete key for c 142:-1
DEBUG: delete elem in map 8
DEBUG: delete key for c 13:1
DEBUG: delete elem in map 8
DEBUG: delete key for c 10:239
DEBUG: delete elem in map 8
DEBUG: delete key for c 226:128
DEBUG: delete elem in map 8
DEBUG: delete key for c 13:68
DEBUG: delete elem in map 8
DEBUG: load program of type 0xf, 33 instructions
DEBUG: v2 allow c 1:3
DEBUG: v2 allow c 1:5
DEBUG: v2 allow c 1:7
DEBUG: v2 allow c 1:8
DEBUG: v2 allow c 1:9
DEBUG: v2 allow c 5:0
DEBUG: v2 allow c 5:1
DEBUG: v2 allow c 5:2
DEBUG: v2 allow c 136:4294967295
DEBUG: v2 allow c 137:4294967295
DEBUG: v2 allow c 138:4294967295
DEBUG: v2 allow c 139:4294967295
DEBUG: v2 allow c 140:4294967295
DEBUG: v2 allow c 141:4294967295
DEBUG: v2 allow c 142:4294967295
DEBUG: v2 allow c 143:4294967295
DEBUG: v2 allow c 10:239
DEBUG: v2 allow c 10:200
DEBUG: inspecting type of device: /dev/dri/card2
DEBUG: v2 allow c 226:2
DEBUG: device /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card2/card2-DP-2 has matching current tag
DEBUG: cannot get major/minor numbers for syspath /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card2/card2-DP-2
DEBUG: device /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card2/card2-DP-3 has matching current tag
DEBUG: cannot get major/minor numbers for syspath /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card2/card2-DP-3
DEBUG: device /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card2/card2-DP-4 has matching current tag
DEBUG: cannot get major/minor numbers for syspath /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card2/card2-DP-4
DEBUG: device /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card2/card2-DP-5 has matching current tag
DEBUG: cannot get major/minor numbers for syspath /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card2/card2-DP-5
DEBUG: device /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/renderD129 has matching current tag
DEBUG: inspecting type of device: /dev/dri/renderD129
DEBUG: v2 allow c 226:129
DEBUG: device /sys/devices/pci0000:00/0000:00:02.0/drm/card1 has matching current tag
DEBUG: inspecting type of device: /dev/dri/card1
DEBUG: v2 allow c 226:1
DEBUG: device /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-1 has matching current tag
DEBUG: cannot get major/minor numbers for syspath /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-1
DEBUG: device /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-1 has matching current tag
DEBUG: cannot get major/minor numbers for syspath /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-1
DEBUG: device /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-2 has matching current tag
DEBUG: cannot get major/minor numbers for syspath /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-2
DEBUG: device /sys/devices/pci0000:00/0000:00:02.0/drm/renderD128 has matching current tag
DEBUG: inspecting type of device: /dev/dri/renderD128
DEBUG: v2 allow c 226:128
DEBUG: device /sys/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.1/1-1.1:1.0/video4linux/video0 has matching current tag
DEBUG: inspecting type of device: /dev/video0
DEBUG: v2 allow c 81:0
DEBUG: device /sys/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.1/1-1.1:1.0/video4linux/video1 has matching current tag
DEBUG: inspecting type of device: /dev/video1
DEBUG: v2 allow c 81:1
DEBUG: device /sys/devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.0/0003:26CE:01A2.0001/input/input4/event4 has matching current tag
DEBUG: inspecting type of device: /dev/input/event4
DEBUG: v2 allow c 13:68
DEBUG: device /sys/devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.0/0003:26CE:01A2.0001/input/input4/js0 has matching current tag
DEBUG: inspecting type of device: /dev/input/js0
DEBUG: v2 allow c 13:0
DEBUG: device /sys/devices/virtual/dma_heap/system has matching current tag
DEBUG: inspecting type of device: /dev/dma_heap/system
DEBUG: v2 allow c 249:0
DEBUG: device /sys/devices/virtual/input/input35/event259 has matching current tag
DEBUG: inspecting type of device: /dev/input/event259
DEBUG: v2 allow c 13:259
DEBUG: device /sys/devices/virtual/input/input36/js1 has matching current tag
DEBUG: inspecting type of device: /dev/input/js1
DEBUG: v2 allow c 13:1
DEBUG: device /sys/devices/virtual/mem/full has matching current tag
DEBUG: inspecting type of device: /dev/full
DEBUG: v2 allow c 1:7
DEBUG: process in cgroup /user.slice/user-10715.slice/user@10715.service/app.slice/snap.firefox_edge.firefox-f690abea-9319-462f-aa4b-cb618d412a59.scope
DEBUG: cgroup /sys/fs/cgroup//user.slice/user-10715.slice/user@10715.service/app.slice/snap.firefox_edge.firefox-f690abea-9319-462f-aa4b-cb618d412a59.scope opened at 10
DEBUG: attach type 0x6 program 9 to cgroup 10
DEBUG: associated snap application process 36635 with device cgroup snap.firefox_edge.firefox
DEBUG: forked support process 36654
DEBUG: changing apparmor hat to mount-namespace-capture-helper
DEBUG: helper process waiting for command
DEBUG: sanity timeout initialized and set for 30 seconds
DEBUG: block device of snap core22, revision 1380 is 7:16
DEBUG: block device of snap core22, revision 1380 is 7:16
DEBUG: sanity timeout initialized and set for 30 seconds
DEBUG: joining preserved mount namespace for inspection
DEBUG: found base snap device 7:16 on /usr
DEBUG: sanity timeout reset and disabled
DEBUG: preserved mount is not stale, reusing
DEBUG: joined preserved mount namespace firefox_edge
DEBUG: joining preserved per-user mount namespace
DEBUG: unsharing the mount namespace (per-user)
DEBUG: sc_setup_user_mounts: firefox_edge
DEBUG: performing operation: (disabled) use debug build to see details
DEBUG: set_effective_identity uid:0 (change: no), gid:0 (change: yes)
DEBUG: calling snapd tool snap-update-ns
DEBUG: waiting for snapd tool snap-update-ns to terminate
DEBUG: requesting changing of apparmor profile on next exec to snap-update-ns.firefox_edge
logger.go:93: DEBUG: current mount entries
logger.go:93: DEBUG: desired mount entries (sorted)
logger.go:93: DEBUG: - /run/user/10715/doc/by-app/snap.firefox_edge /run/user/10715/doc none bind,rw,x-snapd.ignore-missing 0 0
logger.go:93: DEBUG: desiredIDs: map[/run/user/10715/doc:true]
logger.go:93: DEBUG: reuse: map[]
logger.go:93: DEBUG: processing mount entries
logger.go:93: DEBUG: adding independent entry: /run/user/10715/doc/by-app/snap.firefox_edge /run/user/10715/doc none bind,rw,x-snapd.ignore-missing 0 0
logger.go:93: DEBUG: all mimics:
logger.go:93: DEBUG: mount entries ordered as they will be applied
logger.go:93: DEBUG: - /run/user/10715/doc/by-app/snap.firefox_edge /run/user/10715/doc none bind,rw,x-snapd.ignore-missing 0 0
logger.go:93: DEBUG: mount name:"/run/user/10715/doc/by-app/snap.firefox_edge" dir:"/run/user/10715/doc" type:"none" opts:MS_BIND unparsed:"" (error: <nil>)
DEBUG: snap-update-ns finished successfully
DEBUG: set_effective_identity uid:0 (change: no), gid:10002 (change: yes)
DEBUG: NOT preserving per-user mount namespace
DEBUG: releasing lock 7
DEBUG: sending command 0 to helper process (pid: 36654)
DEBUG: waiting for response from helper
DEBUG: sanity timeout reset and disabled
DEBUG: helper process received command 0
DEBUG: helper process exiting
DEBUG: waiting for the helper process to exit
DEBUG: helper process exited normally
DEBUG: resetting PATH to values in sync with core snap
DEBUG: -- snap startup {"stage":"snap-confine mount namespace finish", "time":"1716299006.174686"}
DEBUG: set_effective_identity uid:10715 (change: yes), gid:10002 (change: yes)
DEBUG: creating user data directory: /home/jgamao/snap/firefox_edge/4307
DEBUG: requesting changing of apparmor profile on next exec to snap.firefox_edge.firefox
DEBUG: ruid: 10715, euid: 10715, suid: 0
DEBUG: setting capabilities bounding set
DEBUG: regaining SYS_ADMIN
DEBUG: loading bpf program for security tag snap.firefox_edge.firefox
DEBUG: read 6680 bytes from /var/lib/snapd/seccomp/bpf//snap.firefox_edge.firefox.bin
DEBUG: read 152 bytes from /var/lib/snapd/seccomp/bpf/global.bin
DEBUG: clearing SYS_ADMIN
DEBUG: execv(/usr/lib/snapd/snap-exec, /usr/lib/snapd/snap-exec...)
DEBUG:  argv[1] = firefox_edge
DEBUG: umask restored to  022
DEBUG: working directory restored to /home/jgamao
DEBUG: -- snap startup {"stage":"snap-confine to snap-exec", "time":"1716299006.175453"}
2024/05/21 09:43:26.177707 logger.go:93: DEBUG: -- snap startup {"stage":"snap-exec to app", "time":"1716299006.177705"}

It ‘goes to stable’ how? Is it loading user data from the ‘stable’ snap state?

It just launches the stable version.

Nightly is on version 128 (and is using a separate, personal profile), and I get 126 with my work profile.

Firefox NIghtly isn’t using my work profile at all.

One other way I made sure that it was actually running stable, is if I drag my tab to my already-opened stable version with my work profile, it’s able to drop.