In previous iOS versions, if a MIDI device was plugged in, removed and plugged in again, then the unique IDs of its source source and destination endpoints (and also of the device itself and its entities) would persist.
So there would be a msgObjectAdded for a source e.g. "Port 1", UID 123456, then a msgObjectRemoved for the same port, then when plugged in again another msgObjectAdded for "Port 1", UID 123456 i.e. it is the "same" port that was added, removed, and added again. And it would be on the "same" entity, which in turn would be on the "same" device.
Now in iOS 17 the unique IDs do not persist. The second msgObjectAdded will come back with something like "Port 1", UID -438484, on an entity and a device that also have new changed UIDs.
Is this an intentional change? It seems odd that while the device is unplugged I can still find out all about it (name, entities, sources, destinations, all as before except the device is now "offline") yet when it is plugged back in I get brand new versions of all that stuff.