Reviving an old question here, but I am experiencing the same issue in a Citrix environment myself. EnumerateDevices is returning different device IDs when logging in and out of a Citrix session, even though the local devices don't change at all. The output on this page proves to me this is what is happening.
https://jsfiddle.net/jib1/2r6z6ouc
var stream;
navigator.mediaDevices.getUserMedia({ audio:true })
.then(s => (stream = s), e => console.log(e.message))
.then(() => navigator.mediaDevices.enumerateDevices())
.then(devices => {
console.log(JSON.stringify(devices));
})
.catch(e => console.log(e));
var console = { log: msg => div.innerHTML += msg + "<br>" };
My problem is, this is only seemingly happening inside Citrix, and i am certain i am storing all chrome data, profile an cache files back to the users profile between sessions, including cookies etc. We are not clearing anything. So Citrix somehow is to blame for these device IDs being re-generated on each login.
Does anyone know of a solution to this, as i have a softphone that will not remember the users device selections and i'm told by the developers that it is because the DeviceIDs are changing on log off/in.
thank you to anyone who can shed any light on this