If a service was registered between us requesting a list of names from the daemon and us processing the reply we would miss it. An event somewhat likely given plasmashell is very busy during startup.
DBus does guarantee preserved message order, so the correct thing to do is:
- create a match rule for new servies on DBus daemon
- start fetching a list of names
- ignore all changes that happen in the meantime
- handle the list of all names