Interference of "become-operational" vs other changes


I need clarification on seed.loaded.

I am using a snap wait system seed.loaded to make sure system is configured before I execute snap connect on slots/plugs that needs to be connected. I have observed recently that the first in a row connections are not successful and the logs shows that the gadget has “become-operational” change in progress.

The code that makes the connections looks like:

# Wait for all snaps to be available
snap wait system seed.loaded

# Connect interfaces now that snaps are available
connect snap slot snap plug

and is executed as a systemd service after snapd.socket.

Could you help me understand if I use the seed.loaded in a proper way?

Thanks in advance!

“become-operational” is about device registration, not seeding (that’s the “seed” change), it might have effects on installs but should haven’t effects on connections, so we need to know a bit more of what is happening (as the problem should not be the “become-operational” which indeed in recent snapd will start after seeding)

Bug report:

A fix for the “become-operational” interference has landed and will be in 2.35.3 and 2.36

Sweet, thank you for a quick reaction.