1. when the system boots for OEM configuration, it boots to the oem-config.target systemd target rather than multi-user.target.
2. the systemd mount units that snapd generates only set WantedBy=multi-user.target, so they are not started at this point. While they set Before=snapd.service, that only orders things if both the mount unit and snapd.service are to be started.
3. The Ubuntu desktop now ships the snapd-desktop-integration snap, which includes a user session service. This is active during the OEM config desktop session.
4. the snapd-desktop-integration user session service hits the /run/snapd-snap.socket REST API socket to check whether the snaps corresponding to the current desktop theme are installed, which will cause snapd to start without the mount units (so the Before= directive does nothing).
There's an obvious hole in this hypothesis though: if the snaps haven't been mounted, how could snapd-desktop-integration even start?
Could the mount units have been shut down after the user session service started?
From IRC conversation, this was one hypothesis:
1. when the system boots for OEM configuration, it boots to the oem-config.target systemd target rather than multi-user.target.
2. the systemd mount units that snapd generates only set WantedBy= multi-user. target, so they are not started at this point. While they set Before= snapd.service, that only orders things if both the mount unit and snapd.service are to be started.
3. The Ubuntu desktop now ships the snapd-desktop- integration snap, which includes a user session service. This is active during the OEM config desktop session.
4. the snapd-desktop- integration user session service hits the /run/snapd- snap.socket REST API socket to check whether the snaps corresponding to the current desktop theme are installed, which will cause snapd to start without the mount units (so the Before= directive does nothing).
There's an obvious hole in this hypothesis though: if the snaps haven't been mounted, how could snapd-desktop- integration even start?
Could the mount units have been shut down after the user session service started?