NetworkManager not always respecting gsm.sim-operator-id
We are using NetworkManager 1.36.9 together with ModemManager 1.18.12 to manage a dual-SIM LTE modem requiring different connection profiles for the two SIMs. The connection files specify sim-operator-id to match either of the two SIMs. When the device boots, however, we see that NetworkManager auto-activates the wrong connection, and seems to ignore our sim-operator-id setting. It seems that NetworkManager doesn't receive the relevant SIM information from ModemManager in time and assumes that the SIM is locked (which in our case, it isn't). This was verified by replacing our connection files with a single phony connection file specifying a non-existent sim-operator-id -- this was also auto-connected by NetworkManager.
This is the logic that I believe is causing us trouble: https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/90ef7aeed39f27db204f5d4d43497bb693fc9f5e/src/core/devices/wwan/nm-modem.c#L1090
This problem eventually clears up when NetworkManager receives the SIM operator ID, but it is a nuisance because it increases the time from power-on until the device is online. Our devices should be online as soon as possible after boot.
I suspect we might be an edge case, but is there any way to support our use-case?