That function for sure exists on the parent:
and it's doing a ?. anyway.
So data cannot be null at line 2708... this.device is never null by nature, and I've added an explicit check for null on this.device just for giggles and it had no affect.:
So I have no idea how the parent app could be removed without removing the child devices, but that seems to have been what happened, since the parent app is indeed gone, leaving a bunch of orphaned child devices behind.
So anyway... there's a bug somewhere in HE code that allowed the parent to get uninstalled/removed without calling uninstalled() and/or doing whatever happens behind the scenes when that "Confirmation" popup is clicked on "Yes".
Nope, that just affects whether or not you can delete the device 'out from under' the parent app.
I'm not setting it, so it defaults to false.
The above "This will remove 7 child devices..." confirmation is with isComponent = false. It doesn't matter if the children are a component or not, if you delete the parent it's supposed to take the children with it.
Not to mention my "uninstalled()" on the parent app very explicitly calls deleteChildDevice() on all of the children.