Device Controls broken after 2023.5.0 upgrade

After upgrading HA to 2023.5.0 yesterday, I was unable to use any of my configured device controls in the Quick Access Device Controls (when using them directly through HA). When I tapped on any of the shortcuts, the tile displayed the message “Error, try again”.

I tried removing all HA devices from the device controls on my phone, which worked fine, but now when I go to add them again, my phone shows the message “Choose controls to access from Quick Settings” and below that “Loading…” but never loads the devices.

Quick Access Device Controls works fine with other apps, including Google Home (including for devices exposed to Google by HA) and the LG ThinQ app, which makes me think this problem is HA specific.

Anyone else seeing the same problem? I’m happy to open an issue for this, but I’m not sure where. On once hand the issue is coming up in the mobile app, but it does seem to be correlated to the core upgrade for me.

This is what shows up for me in the logs of the Android app while trying to add HA devices to my Quick Access Device Controls. (I removed a few instances of the most duplicated line to fit the max comment size here.)

05-04 09:49:27.010 29288 23128 D ServerConnectionInfo: localUrl is: true, usesInternalSsid is: true, usesWifi is: true
05-04 09:49:27.011 29288 23128 D WebSocketRepository: Sending message 172: {type=config/entity_registry/list, id=172}
05-04 09:49:27.011 29288 23128 D WebSocketRepository: Message number 172 sent
05-04 09:49:27.011 29288 23128 D WebSocketRepository: Sending message 173: {type=get_states, id=173}
05-04 09:49:27.011 29288 23128 D WebSocketRepository: Message number 173 sent
05-04 09:49:27.012 29288 20349 D WebSocketRepository: Sending message 174: {type=config/area_registry/list, id=174}
05-04 09:49:27.012 29288 20349 D WebSocketRepository: Message number 174 sent
05-04 09:49:27.012 29288  9265 D WebSocketRepository: Sending message 175: {type=config/device_registry/list, id=175}
05-04 09:49:27.012 29288  9265 D WebSocketRepository: Message number 175 sent
05-04 09:49:27.256 29288 19139 D WebSocketRepository: Websocket: onMessage (text)
05-04 09:49:27.314 29288 19139 D WebSocketRepository: Message number 172 received
05-04 09:49:27.405 29288 19139 D WebSocketRepository: Websocket: onMessage (text)
05-04 09:49:27.446 29288 19139 D WebSocketRepository: Message number 173 received
05-04 09:49:27.447 29288 19139 D WebSocketRepository: Message number 174 received
05-04 09:49:27.447 29288 19139 D WebSocketRepository: Message number 175 received
05-04 09:49:27.813 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.814 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.814 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.814 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.814 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.814 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.814 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.814 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.815 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.815 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.815 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.816 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.816 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.816 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.816 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.816 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.816 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.816 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.817 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.817 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.817 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.817 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.817 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.817 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.818 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.818 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.818 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.818 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.818 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.818 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.818 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.819 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.819 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.819 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.819 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.820 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.820 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.820 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.820 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.820 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.820 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.820 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.820 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.820 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.821 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.821 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.821 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.821 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.821 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.821 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.821 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.821 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.821 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.822 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.822 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.822 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.822 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.822 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.823 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.823 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.823 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.823 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.823 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.824 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.824 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.824 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.824 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.824 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.824 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.825 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.825 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.825 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.825 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.826 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.826 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.826 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.826 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.826 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.827 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.827 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.827 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.827 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.827 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.827 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.828 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.828 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.828 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.829 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.829 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.830 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.830 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.830 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.830 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.830 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.832 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.833 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.833 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.833 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.834 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.834 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.834 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.834 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.834 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.835 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.835 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.835 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.835 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.835 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.835 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.836 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.836 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.837 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.837 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.837 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.838 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.838 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.838 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.838 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.838 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.839 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.839 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.839 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.839 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.839 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.839 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.840 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.840 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.840 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.840 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.840 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.841 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.841 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.841 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.842 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.842 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.842 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.842 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.842 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.843 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.843 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.843 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.843 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.843 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.844 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.844 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.844 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.845 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.845 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.845 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.845 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.845 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.845 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.846 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.846 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.846 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.846 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.846 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.846 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.846 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.847 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.847 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.847 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.847 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.848 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.848 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.848 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.848 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.849 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.849 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.849 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.849 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.849 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.850 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.850 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.850 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.850 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.850 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.850 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.850 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.850 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.851 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.851 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.851 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.851 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.851 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:27.851 29288  9265 W ControlsProviderService: onNext(): control is not stateless. Use the Control.StatelessBuilder() to build the control.
05-04 09:49:33.320 29288 29288 D IntegrationRepository: isAppLocked(): false. (LockEnabled: false, appActive: false, expireMillis: 1683215361575, currentMillis: 1683215373320)
05-04 09:49:33.476 29288 29288 D IntegrationRepository: isAppLocked(): false. (LockEnabled: false, appActive: false, expireMillis: 1683215361575, currentMillis: 1683215373476)
05-04 09:49:33.476 29288 29288 D IntegrationRepository: setAppActive(): true
05-04 09:49:35.100 29288  9265 D LogcatReader: Read logcat for pid 29288

does it still remain broken if you roll back?

there is a known issue for adding controls back

Thanks for the link! Using the advice from that issue, I was able to re-add the device controls from HA.

Unfortunately, that brings me back to a point where all of the device controls display “Error, try again” when I click on them. The error is presumably the one in this log:

05-04 13:52:02.375 32140 32140 D IntegrationRepository: setAppActive(): false
05-04 13:52:02.376 32140 32140 D IntegrationRepository: setAppActive(): false
05-04 13:52:02.394 32140 32140 D HaConProService: publisherFor [1.light.front_bedroom_nightstand, 1.fan.garage_fans, 1.fan.garage_heater, 1.scene.garage_vent, 1.cover.garage_door, 1.fan.house_fan, 1.light.ian_nightstand, 1.light.julia_nightstand, 1.fan.master_bedroom_fan_real]
05-04 13:52:02.418 32140 32354 D ServerConnectionInfo: localUrl is: true, usesInternalSsid is: true, usesWifi is: true
05-04 13:52:02.418 32140 32354 D HaConProService: request 100000
05-04 13:52:02.419 32140 11662 D WebSocketRepository: Sending message 26: {type=config/device_registry/list, id=26}
05-04 13:52:02.419 32140 11662 D WebSocketRepository: Message number 26 sent
05-04 13:52:02.420 32140 11683 D WebSocketRepository: Sending message 27: {type=config/area_registry/list, id=27}
05-04 13:52:02.420 32140 11683 D WebSocketRepository: Message number 27 sent
05-04 13:52:02.423 32140 11665 D WebSocketRepository: Sending message 28: {type=config/entity_registry/list, id=28}
05-04 13:52:02.423 32140 11665 D WebSocketRepository: Message number 28 sent
05-04 13:52:02.424 32140 32229 D ServerConnectionInfo: localUrl is: true, usesInternalSsid is: true, usesWifi is: true
05-04 13:52:02.424 32140 32229 D ServerConnectionInfo: Using internal URL
05-04 13:52:02.480 32140 11288 D WebSocketRepository: Websocket: onMessage (text)
05-04 13:52:02.483 32140 11288 D WebSocketRepository: Message number 26 received
05-04 13:52:02.702 32140 11288 D WebSocketRepository: Websocket: onMessage (text)
05-04 13:52:02.718 32140 11288 D WebSocketRepository: Message number 27 received
05-04 13:52:02.718 32140 11288 D WebSocketRepository: Message number 28 received
05-04 13:52:02.774 32140 11683 D ServerConnectionInfo: localUrl is: true, usesInternalSsid is: true, usesWifi is: true
05-04 13:52:02.778 32140 11683 D ServerConnectionInfo: localUrl is: true, usesInternalSsid is: true, usesWifi is: true
05-04 13:52:03.152 32140 11683 E IntegrationRepository: Issue getting new version from core.
05-04 13:52:03.152 32140 11683 E IntegrationRepository: io.homeassistant.companion.android.common.data.integration.IntegrationException: retrofit2.HttpException: HTTP 410 Gone
05-04 13:52:03.152 32140 11683 E IntegrationRepository: 	at io.homeassistant.companion.android.common.data.integration.impl.IntegrationRepositoryImpl.getConfig(IntegrationRepositoryImpl.kt:493)
05-04 13:52:03.152 32140 11683 E IntegrationRepository: 	at io.homeassistant.companion.android.common.data.integration.impl.IntegrationRepositoryImpl$getConfig$1.invokeSuspend(Unknown Source:14)
05-04 13:52:03.152 32140 11683 E IntegrationRepository: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
05-04 13:52:03.152 32140 11683 E IntegrationRepository: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
05-04 13:52:03.152 32140 11683 E IntegrationRepository: 	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
05-04 13:52:03.152 32140 11683 E IntegrationRepository: 	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
05-04 13:52:03.152 32140 11683 E IntegrationRepository: 	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
05-04 13:52:03.152 32140 11683 E IntegrationRepository: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
05-04 13:52:03.152 32140 11683 E IntegrationRepository: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
05-04 13:52:03.152 32140 11683 E IntegrationRepository: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
05-04 13:52:03.152 32140 11683 E IntegrationRepository: Caused by: retrofit2.HttpException: HTTP 410 Gone
05-04 13:52:03.152 32140 11683 E IntegrationRepository: 	at retrofit2.KotlinExtensions$await$2$2.onResponse(KotlinExtensions.kt:53)
05-04 13:52:03.152 32140 11683 E IntegrationRepository: 	at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:161)
05-04 13:52:03.152 32140 11683 E IntegrationRepository: 	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519)
05-04 13:52:03.152 32140 11683 E IntegrationRepository: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
05-04 13:52:03.152 32140 11683 E IntegrationRepository: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
05-04 13:52:03.152 32140 11683 E IntegrationRepository: 	at java.lang.Thread.run(Thread.java:1012)
05-04 13:52:03.154 32140 11683 D WebSocketRepository: Sending message 29: {type=subscribe_events, event_type=entity_registry_updated, id=29}
05-04 13:52:03.154 32140 11683 D WebSocketRepository: Message number 29 sent
05-04 13:52:03.163 32140 11288 D WebSocketRepository: Websocket: onMessage (text)
05-04 13:52:03.164 32140 11288 D WebSocketRepository: Message number 29 received
05-04 13:52:03.165 32140 11673 D WebSocketRepository: Sending message 30: {type=subscribe_events, event_type=device_registry_updated, id=30}
05-04 13:52:03.165 32140 11673 D WebSocketRepository: Message number 30 sent
05-04 13:52:03.179 32140 11288 D WebSocketRepository: Websocket: onMessage (text)
05-04 13:52:03.180 32140 11288 D WebSocketRepository: Message number 30 received
05-04 13:52:03.181 32140 32176 D WebSocketRepository: Sending message 31: {type=subscribe_events, event_type=area_registry_updated, id=31}
05-04 13:52:03.181 32140 32176 D WebSocketRepository: Message number 31 sent
05-04 13:52:03.191 32140 11288 D WebSocketRepository: Websocket: onMessage (text)
05-04 13:52:03.191 32140 11288 D WebSocketRepository: Message number 31 received
05-04 13:52:03.192 32140 11675 D WebSocketRepository: Sending message 32: {type=subscribe_entities, entity_ids=[light.front_bedroom_nightstand, fan.garage_fans, fan.garage_heater, scene.garage_vent, cover.garage_door, fan.house_fan, light.ian_nightstand, light.julia_nightstand, fan.master_bedroom_fan_real], id=32}
05-04 13:52:03.193 32140 11675 D WebSocketRepository: Message number 32 sent
05-04 13:52:03.202 32140 11288 D WebSocketRepository: Websocket: onMessage (text)
05-04 13:52:03.202 32140 11288 D WebSocketRepository: Message number 32 received
05-04 13:52:03.202 32140 11288 D WebSocketRepository: Message number 32 received
05-04 13:52:03.205 32140 11665 D HaConProService: Sending 9 entities to subscriber
05-04 13:52:04.180 32140 32140 D HaConProService: Control: 1.fan.garage_fans, action: android.service.controls.actions.BooleanAction@ca437dd
05-04 13:52:04.185 32140 32140 D ServerConnectionInfo: localUrl is: true, usesInternalSsid is: true, usesWifi is: true
05-04 13:52:04.188 32140 11662 D ServerConnectionInfo: localUrl is: true, usesInternalSsid is: true, usesWifi is: true
05-04 13:52:04.559 32140 11662 E HaConProService: Unable to control or get entity information
05-04 13:52:04.559 32140 11662 E HaConProService: io.homeassistant.companion.android.common.data.integration.IntegrationException: Error calling integration request call_service
05-04 13:52:04.559 32140 11662 E HaConProService: 	at io.homeassistant.companion.android.common.data.integration.impl.IntegrationRepositoryImpl.callService(IntegrationRepositoryImpl.kt:269)
05-04 13:52:04.559 32140 11662 E HaConProService: 	at io.homeassistant.companion.android.common.data.integration.impl.IntegrationRepositoryImpl$callService$1.invokeSuspend(Unknown Source:15)
05-04 13:52:04.559 32140 11662 E HaConProService: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
05-04 13:52:04.559 32140 11662 E HaConProService: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
05-04 13:52:04.559 32140 11662 E HaConProService: 	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
05-04 13:52:04.559 32140 11662 E HaConProService: 	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
05-04 13:52:04.559 32140 11662 E HaConProService: 	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
05-04 13:52:04.559 32140 11662 E HaConProService: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
05-04 13:52:04.559 32140 11662 E HaConProService: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
05-04 13:52:04.559 32140 11662 E HaConProService: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
05-04 13:52:07.086 32140 32140 D IntegrationRepository: isAppLocked(): false. (LockEnabled: false, appActive: false, expireMillis: 1683229923376, currentMillis: 1683229927086)
05-04 13:52:07.134 32140 32140 D IntegrationRepository: isAppLocked(): false. (LockEnabled: false, appActive: false, expireMillis: 1683229923376, currentMillis: 1683229927134)
05-04 13:52:07.134 32140 32140 D IntegrationRepository: setAppActive(): true
05-04 13:52:07.647 32140 32354 D HaConProService: cancel
05-04 13:52:07.649 32140 11674 D WebSocketRepository: Unsubscribing from subscribe_events with data {event_type=entity_registry_updated}
05-04 13:52:07.649 32140 11674 D WebSocketRepository: Sending message 33: {type=unsubscribe_events, subscription=29, id=33}
05-04 13:52:07.649 32140 11306 D WebSocketRepository: Unsubscribing from subscribe_entities with data {entity_ids=[light.front_bedroom_nightstand, fan.garage_fans, fan.garage_heater, scene.garage_vent, cover.garage_door, fan.house_fan, light.ian_nightstand, light.julia_nightstand, fan.master_bedroom_fan_real]}
05-04 13:52:07.650 32140 11676 D WebSocketRepository: Unsubscribing from subscribe_events with data {event_type=area_registry_updated}
05-04 13:52:07.651 32140 11674 D WebSocketRepository: Message number 33 sent
05-04 13:52:07.651 32140 11306 D WebSocketRepository: Sending message 34: {type=unsubscribe_events, subscription=32, id=34}
05-04 13:52:07.651 32140 11306 D WebSocketRepository: Message number 34 sent
05-04 13:52:07.651 32140 11676 D WebSocketRepository: Sending message 35: {type=unsubscribe_events, subscription=31, id=35}
05-04 13:52:07.651 32140 11676 D WebSocketRepository: Message number 35 sent
05-04 13:52:07.651 32140 11680 D WebSocketRepository: Unsubscribing from subscribe_events with data {event_type=device_registry_updated}
05-04 13:52:07.652 32140 11680 D WebSocketRepository: Sending message 36: {type=unsubscribe_events, subscription=30, id=36}
05-04 13:52:07.652 32140 11680 D WebSocketRepository: Message number 36 sent
05-04 13:52:07.659 32140 11288 D WebSocketRepository: Websocket: onMessage (text)
05-04 13:52:07.660 32140 11288 D WebSocketRepository: Message number 33 received
05-04 13:52:07.667 32140 11288 D WebSocketRepository: Websocket: onMessage (text)
05-04 13:52:07.668 32140 11288 D WebSocketRepository: Message number 34 received
05-04 13:52:07.668 32140 11288 D WebSocketRepository: Message number 35 received
05-04 13:52:07.668 32140 11288 D WebSocketRepository: Message number 36 received
05-04 13:52:07.677 32140 11288 D WebSocketRepository: Websocket: onClosing code: 1000, reason: 
05-04 13:52:07.677 32140 11288 D WebSocketRepository: Websocket: onClosed
05-04 13:52:08.766 32140 11665 D LogcatReader: Read logcat for pid 32140
05-04 13:52:08.807 32140 11665 D LogcatReader: Done reading logcat for pid 32140
05-04 13:52:17.291 32140 11665 D LogcatReader: Read logcat for pid 32140

By roll back, do you mean the HA core version back to 2023.4.x? I’m a bit loathe to do so because since the upgrade I also swapped my skyconnect from thread to multiprotocol, but I could maybe tackle that this weekend.

looks like your integration got corrupted, log out from inside the app and log back in to fix it

Awesome, that got things working again. Thanks for taking the time to look at it for me, I really appreciate it.

1 Like