When showing an overlay with a predefined ID we intermittently get the error "... component id already exists ..." (see attachment).
Call an overlay like so:
//detects if user is connected to internet
NetInfo.isConnected.addEventListener('connectionChange', (connected) => {
if (connected) {
Navigation.dismissOverlay("OfflineOverlay").catch(error => console.log(error.message));
} else {
Navigation.showOverlay({
component: {
id: "OfflineOverlay",
name: "app.OfflineOverlay",
options: {
overlay: {
interceptTouchOutside: false
}
}
},
});
}
this.isConnected = connected;
});
And intermittently the app will crash and we'll get the error seen in the attachment.

I think you are experiencing a race in your code. Try to async await on showOverlay and dismissOverly.
I believe that resolved the issue. Thank you @yogevbd !
NetInfo.isConnected.addEventListener('connectionChange', async (connected) => {
if (connected && !this.isConnected) {
await Navigation.dismissOverlay("OfflineOverlay").catch(error => console.log(error.message));
this.isConnected = connected;
} else if (!connected && this.isConnected){
Navigation.showOverlay({
component: {
id: "OfflineOverlay",
name: "yuserapp.OfflineOverlay",
options: {
overlay: {
interceptTouchOutside: false
}
}
},
});
this.isConnected = connected;
}
});
Most helpful comment
I think you are experiencing a race in your code. Try to async await on
showOverlayanddismissOverly.