iCloud Binding Communication Error

Yesterday I changed the log to debug level but there isn’t much information about my device. Today I added my iPad Pro (iOS15) and like my wife‘s iPhone this device is fully recognized.


2022-01-07 22:23:17.046 [DEBUG] [l.handler.ICloudAccountBridgeHandler] - iCloud bridge refreshing data ...
2022-01-07 22:23:18.319 [DEBUG] [rnal.discovery.ICloudDeviceDiscovery] - iCloud device discovery for [iPhone 11 Pro]
2022-01-07 22:23:18.321 [DEBUG] [rnal.discovery.ICloudDeviceDiscovery] - Device [3243e892, dYgDxjNxxx] found.
2022-01-07 22:23:18.325 [DEBUG] [rnal.discovery.ICloudDeviceDiscovery] - iCloud device discovery for [iPad Pro]
2022-01-07 22:23:18.327 [DEBUG] [rnal.discovery.ICloudDeviceDiscovery] - Device [eabd6ac2, n6ofM9Cxxx] found.
2022-01-07 22:23:18.342 [DEBUG] [rnal.discovery.ICloudDeviceDiscovery] - iCloud device discovery for [iPhone 8]
2022-01-07 22:23:18.343 [DEBUG] [rnal.discovery.ICloudDeviceDiscovery] - Device [af9112e7, 7bSI5Ibxxx] found.
2022-01-07 22:23:18.350 [DEBUG] [internal.handler.ICloudDeviceHandler] - Device: [dYgDxjNxxx]
2022-01-07 22:23:18.360 [DEBUG] [internal.handler.ICloudDeviceHandler] - Current data element: [id = dYgDxjNxxx]
2022-01-07 22:23:18.356 [DEBUG] [internal.handler.ICloudDeviceHandler] - Device: [7bSI5Ibxxx]
2022-01-07 22:23:18.362 [DEBUG] [internal.handler.ICloudDeviceHandler] - Current data element: [id = n6ofM9Cxxx]
2022-01-07 22:23:18.365 [DEBUG] [internal.handler.ICloudDeviceHandler] - Current data element: [id = 7bSI5Ibxxx]
2022-01-07 22:23:18.369 [DEBUG] [internal.handler.ICloudDeviceHandler] - Device: [n6ofM9Cxxx]
2022-01-07 22:23:18.378 [DEBUG] [l.handler.ICloudAccountBridgeHandler] - iCloud bridge data refresh complete.
2022-01-07 22:23:18.379 [INFO ] [enhab.core.model.script.iPhone8 Home] - iPhone8 ist zuhause
2022-01-07 22:23:18.391 [INFO ] [enhab.core.model.script.iPadPro Home] - iPad Pro ist zuhause
==> /mnt/logs/events.log <==
2022-01-07 22:23:18.357 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'icloud:device:myaccount:iPhone11Pro' changed from OFFLINE (COMMUNICATION_ERROR): Reported offline by iCloud webservice to ONLINE
2022-01-07 22:23:18.361 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iPhone11Pro_LocationLastUpdate' changed from 2022-01-07T22:13:11.220+0100 to 2022-01-07T22:18:13.563+0100
2022-01-07 22:23:18.373 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iPhone8_BatteryLevel' changed from xxx to xxx
2022-01-07 22:23:18.375 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iPhone8_Location' changed from xxx to xxx
2022-01-07 22:23:18.376 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iPhone8_LocationLastUpdate' changed from 2022-01-07T22:15:11.366+0100 to 2022-01-07T22:20:13.547+0100
2022-01-07 22:23:18.385 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iPadPro_BatteryLevel' changed from xxx to xxx
2022-01-07 22:23:18.386 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iPadPro_Location' changed from xxx to xxx
2022-01-07 22:23:18.387 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iPadPro_LocationAccuracy' changed from 9.80588733878592 to 9.877551943417467
2022-01-07 22:23:18.388 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iPadPro_LocationLastUpdate' changed from 2022-01-07T22:14:19.266+0100 to 2022-01-07T22:19:53.533+0100

So although my device changed from OFFLINE to ONLINE only the LocationLastUpdate changed. The presence rule wasn’t fired. This happens again and again, several times per day.

Maybe you should describe your problem? I cannot see something unusual in the log.

You talked about presence rule not fired? How does your rule look like, and what should it do?

If you trigger the rule with location, location didn’t change, it will not fire.

And remember: the phone pushed information to iCloud let’s say all 10 minutes. If binding fetches all 5 minutes, every second iCloud pull you will not get an updated location.

It’s hard to help without understanding what’s your problem and what you want to do.

I try to understand and to find out why one of my three configured devices (my iPhone 11 Pro) is affected by the communication error while the two others are not (iPhone 8 and iPad Pro). All devices use the same Apple ID. The communication error happens about 30 times per day, but as I said only to my iPhone 11 Pro.

The rule I use checks if my devices are at home or not and is part of the iCloud Binding documentation:

rule "iPhone8 Home"
when
    Item iPhone8_Location changed
then
    // specify your home location
    val PointType home_location_iPhone8  = new PointType(new DecimalType(xxx), new DecimalType(xxx))
    val PointType phone_location_iPhone8 = iPhone8_Location.state as PointType
    val int distance_iPhone8 = phone_location_iPhone8.distanceFrom(home_location_iPhone8).intValue()
    // specify your preferred radius (in meters)
    if (distance_iPhone8 < 200) {
        iPhone8_Home.postUpdate(ON)
        logInfo("iPhone8 Home", "iPhone8 ist zuhause")
    } else {
        iPhone8_Home.postUpdate(OFF)
        logInfo("iPhone8 Home", "iPhone8 ist unterwegs")
    }
end

rule "iPhone11Pro Home"
when
    Item iPhone11Pro_Location changed
then
    // specify your home location
    val PointType home_location_iPhone11Pro  = new PointType(new DecimalType(xxx), new DecimalType(xxx))
    val PointType phone_location_iPhone11Pro = iPhone11Pro_Location.state as PointType
    val int distance_iPhone11Pro = phone_location_iPhone11Pro.distanceFrom(home_location_iPhone11Pro).intValue()
    // specify your preferred radius (in meters)
    if (distance_iPhone11Pro < 200) {
        iPhone11Pro_Home.postUpdate(ON)
        logInfo("iPhone11Pro Home", "iPhone11Pro ist zuhause")
    } else {
        iPhone11Pro_Home.postUpdate(OFF)
        logInfo("iPhone11Pro Home", "iPhone11Pro ist unterwegs")
    }
end

Only the iPhone 8 and the iPad Pro report their location (also location accuracy, location last update and battery level) periodically (every 5 minutes) so the rule is fired correctly. But not on my iPhone 11 Pro.

How do I change the push period on my iPhone and what exactly has this to do with the communication error? I didn’t adjust any special settings on my other devices.

So, the rule only triggers if location changed. That’s fine. Due to sometimes no update of iPhone between two pulls of iCloud, it will happen, that the location doesn’t change. But it will change next pull and the rule will be fired.

So that’s fine.

If the iCloud reports your device offline, you should search on your iPhone why. So open I cloud and try to watch same moment the binding says reported as offline what the iCloud is doing.

That’s not a big in the binding, it’s the behavior of your device with iCloud.

Maybe a short moment without connection? A call that moment and no Wi-Fi? Because then the device is not connected

Hello, i have new iphone with same icloud account and binding not working.


09:49:53.112 [DEBUG] [al.handler.ICloudAccountBridgeHandler] - iCloud bridge refreshing data ...
09:49:53.961 [DEBUG] [ernal.discovery.ICloudDeviceDiscovery] - iCloud device discovery for [iPhone 12 Pro]
09:49:53.964 [DEBUG] [ernal.discovery.ICloudDeviceDiscovery] - Device [3a77e041, /UNm01d39xaoY95I9hiDNPTZU+S85IrVi7mxiFvihSk=] found.
09:49:54.016 [DEBUG] [.internal.handler.ICloudDeviceHandler] - Unable to find device data.
09:49:54.018 [DEBUG] [al.handler.ICloudAccountBridgeHandler] - iCloud bridge data refresh complete.

You need to be login with new phone in iCloud and you will get a new device id. Is the new device in your inbox?

Does anyone have the binding in openhab with Docker? Does the binding need any tools that are not installed by default in openhab with Docker?

Well for me, I have some problems with my device as well.

  • Bought a new phone, iCloud logged in, binding found the phone. Added the new phone
  • This new phone (iPhone 13) most of the time shows its battery percentage as unknown. But sometimes (4/10) it shows the correct battery info. Location state is shown correctly always (even if battery don’t).
  • Since some time ago (1 month approx.) all of my devices shows as offline in the openHAB things list, even though, all of them are online and providing location data to openHAB correctly.

I don’t know if the 2 events (new phone and problem with Online/Offline status) correlates to each other or not.
Does anyone else have similar issues?

Which version of openHAB you are using? Which version of iCloud-bindings?

Normally location, battery etc. are always pulled same time. So (in my case) newer had this like you.

Yes I know this, that’s why I can’t understand this kind of error…

I’m using the latest stable version, (3.2) with the latest stable version of the binding.

Can you increase log level for binding and post logs here?

Are your things and items defined via text file or by webfrontend? Did you checked the link?

Would propose to make items persistent that you can see changes historical to find the failure

Hi folks,

I had similar issues like @rkrisi the last weeks. Every approx. 5 minutes there was some error log message like “… device xyz has been reported offline by iCloud binding…”.

I just wanted to add some logs of my openHAB installation regarding this issue, but it seems to be gone.
The only change I did this afternoon was restarting the openHAB service. I did this because of another reason as I thought the restart can prevent Java from using 100% CPU :smiley: . Now openHAB is running smooth again - both problems solved.

All iCloud devices no longer are shown offline all the time.

Cheers
Jonathan

Yes I have the binding in TRACE mode, but I didn’t find any visible problem in the log.

Edit: I have found the problem and I think this problem is on Apple side.

The binding uses the deviceStatus code to check if a device is online or not. This is usually “200” if the device is online.
However for me, many of my devices report deviceStatus “203” sometimes even if they are online. But also devices which are really offline, report “203” as deviceStatus… really weird.
In HA iCloud binding, these status codes are used:

DEVICESTATUSCODES = {
    '200': 'online',
    '201': 'offline',
    '203': 'pending',
    '204': 'unregistered',
}

I will try to add a fix for this.

I have restarted openHAB several times since this error, but that did not help.

What is your refresh time setting?

My refresh time setting is 5 min.

Nevertheless, one device is now showing status COMMUNICATION_ERROR (Reported offline by iCloud webservice) again…

Unfortunately I cannot access detailed logs at the moment. Will try later.

5 min here too. Shorter seems to make trouble

I think you have the same problem as me. If you could look into the logs (it will return a json, and search for “deviceStatus”) and see if your device(s) has a statusCode of 203. Maybe if you can’t find it, you could strip it down and send it to me.

It contains all information about devices (uuid, current location, etc…) so I think it is not a good idea to post it here.

You can’t even set a shorter time than 5 min.

I will try to find another parameter which could indicate if the device is online or offline and I will try to include that also in the ONLINE/OFFLINE checking logic of the binding.

It would be great to know what “203 - pending” means…

I have now recorded some of the refresh cycles of the icloud binding. I have two iPhones added to my account and both of them where online throughout this timespan.

Following result - this confirms your statements above:

2022-03-01 21:07:03.776 [DEBUG] [l.handler.ICloudAccountBridgeHandler] - iCloud bridge refreshing data ...
2022-03-01 21:07:04.631 [TRACE] [l.handler.ICloudAccountBridgeHandler] - json:
{
	...
	"content": [
		{
		...
			"id": "myDevAId",
			....
			"deviceStatus": "203",
			....
		},
		{
			"id": "myDevBId",
			...
			"deviceStatus": "200",
			...
		}
	],
	"statusCode": "200"
}
2022-03-01 21:07:04.650 [DEBUG] [rnal.discovery.ICloudDeviceDiscovery] - iCloud device discovery for [iPhone 11]
2022-03-01 21:07:04.652 [DEBUG] [rnal.discovery.ICloudDeviceDiscovery] - Device [myDevA, myDevAId] found.
2022-03-01 21:07:04.654 [DEBUG] [rnal.discovery.ICloudDeviceDiscovery] - iCloud device discovery for [iPhone 11]
2022-03-01 21:07:04.655 [DEBUG] [rnal.discovery.ICloudDeviceDiscovery] - Device [myDevB, myDevBId] found.
2022-03-01 21:07:04.656 [DEBUG] [internal.handler.ICloudDeviceHandler] - Device: [myDevBId]
2022-03-01 21:07:04.657 [DEBUG] [internal.handler.ICloudDeviceHandler] - Current data element: [id = myDevAId]
2022-03-01 21:07:04.659 [DEBUG] [internal.handler.ICloudDeviceHandler] - Current data element: [id = myDevBId]
2022-03-01 21:07:04.663 [DEBUG] [internal.handler.ICloudDeviceHandler] - Device: [myDevAId]
2022-03-01 21:07:04.664 [DEBUG] [internal.handler.ICloudDeviceHandler] - Current data element: [id = myDevAId]
2022-03-01 21:07:04.669 [DEBUG] [l.handler.ICloudAccountBridgeHandler] - iCloud bridge data refresh complete.
==> /var/log/openhab/events.log <==
2022-03-01 21:07:04.661 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'icloud:device:bridge:myDevB' changed from OFFLINE (COMMUNICATION_ERROR): Reported offline by iCloud webservice to ONLINE
2022-03-01 21:07:04.670 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iPhoneBiPhone11_Batterieladung' changed from x.y to a.b
2022-03-01 21:07:04.673 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iPhoneBiPhone11_LetztesStandortUpdate' changed from 2022-03-01T20:57:03.824+0100 to 2022-03-01T21:02:05.064+0100
2022-03-01 21:07:04.676 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iPhoneAiPhone11_LetztesStandortUpdate' changed from 2022-03-01T20:57:03.705+0100 to 2022-03-01T21:02:04.771+0100

Then the next log shows:

2022-03-01 21:12:04.670 [DEBUG] [l.handler.ICloudAccountBridgeHandler] - iCloud bridge refreshing data ...
2022-03-01 21:12:05.653 [TRACE] [l.handler.ICloudAccountBridgeHandler] - json:
{
	...
	"content": [
		{
		...
			"id": "myDevAId",
			....
			"deviceStatus": "203",
			....
		},
		{
			"id": "myDevBId",
			...
			"deviceStatus": "203",
			...
		}
	],
	"statusCode": "200"
}
2022-03-01 21:12:05.666 [DEBUG] [rnal.discovery.ICloudDeviceDiscovery] - iCloud device discovery for [iPhone 11]
2022-03-01 21:12:05.669 [DEBUG] [rnal.discovery.ICloudDeviceDiscovery] - Device [myDevA, myDevAId] found.
2022-03-01 21:12:05.671 [DEBUG] [rnal.discovery.ICloudDeviceDiscovery] - iCloud device discovery for [iPhone 11]
2022-03-01 21:12:05.673 [DEBUG] [rnal.discovery.ICloudDeviceDiscovery] - Device [myDevB, myDevBId] found.
2022-03-01 21:12:05.675 [DEBUG] [internal.handler.ICloudDeviceHandler] - Device: [myDevBId]
2022-03-01 21:12:05.677 [DEBUG] [internal.handler.ICloudDeviceHandler] - Current data element: [id = myDevAId]
2022-03-01 21:12:05.678 [DEBUG] [internal.handler.ICloudDeviceHandler] - Current data element: [id = myDevBId]
2022-03-01 21:12:05.695 [DEBUG] [internal.handler.ICloudDeviceHandler] - Device: [myDevAId]
2022-03-01 21:12:05.698 [DEBUG] [internal.handler.ICloudDeviceHandler] - Current data element: [id = myDevAId]
2022-03-01 21:12:05.703 [DEBUG] [l.handler.ICloudAccountBridgeHandler] - iCloud bridge data refresh complete.
==> /var/log/openhab/events.log <==
2022-03-01 21:12:05.682 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'icloud:device:bridge:myDevB' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Reported offline by iCloud webservice
2022-03-01 21:12:05.685 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iPhoneBiPhone11_Batterieladung' changed from x.y to a.b
2022-03-01 21:12:05.701 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iPhoneBiPhone11_LetztesStandortUpdate' changed from 2022-03-01T21:02:05.064+0100 to 2022-03-01T21:07:05.872+0100
2022-03-01 21:12:05.723 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iPhoneAiPhone11_LetztesStandortUpdate' changed from 2022-03-01T21:02:04.771+0100 to 2022-03-01T21:07:05.665+0100

These two examples show also, that the battery state of iPhoneA does not get updated at all.

I then had a quick look over the next refresh cycles and its always the "deviceStatus": "203" which causes changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Reported offline by iCloud webservice.
In the next cycle both got online again (200) and the cycle afterwards both offline again (203) :smiley:
Is it possible that when the icloud service itself is awaiting new data from the devices that it reports “pending” in this case?

I hope this helps.

Cheers
Jonathan

Well, it might be, but I don’t know because there are no official documentation for this.

It might be, that it is waiting for a new update from that device. Maybe that’s why also really offline devices show the same status, because it waits for them to report… and maybe it just shows offline after a day or so…

I also thought about that maybe the Find My network caused changes in these APIs which are not handled in openHAB (or anywhere else) at all. So for example it might show “203” when the state depends on the Find My network (no direct connection, only indirect through Find My network - and these causes weird statuses on this API).

And maybe even Apple did not handle these correctly in this API (afaik this is an old, legacy API, that maybe explains all of these…).

However, for me it seemed that the battery status is not updated (usually shown as “unknown”), but the location is updated correctly. Can you check these on your side as well?

If that “203” is that common and there is so sign that after X API calls it changes to “200” again, then maybe a solution could be to set the device into an “UNKOWN” state or something like this and ignore battery state and status (that way at least the last correct reading would be shown) and only update the location and other channels.

What do you think?

In researching a problem I’m experiencing with the iCloud binding, I found this thread. My problem may or may not be related, but I will share and someone more knowledgeable than I can perhaps point me in the right direction.

I use icloud location data, combined with network presence data from the network binding for presence detection. The iCloud location data on all my and my wife’s devices stopped updating on Feb 28, 2022. I found the following in the openhab.log file:

2022-02-28 18:48:24.095 [WARN ] [l.handler.ICloudAccountBridgeHandler] - Unable to refresh device data
java.io.IOException: java.util.concurrent.ExecutionException: java.io.EOFException: HttpConnectionOverHTTP@13896b::DecryptedEndPoint@e8f51c{l=/192.168.1.89:57498,r=fmipmobile.icloud.com/17.248.185.207:443,OPEN,fill=-,flush=-,to=300126/0}
	at org.openhab.core.io.net.http.HttpUtil.executeUrlAndGetReponse(HttpUtil.java:260) ~[?:?]
	at org.openhab.core.io.net.http.HttpUtil.executeUrl(HttpUtil.java:155) ~[?:?]
	at org.openhab.core.io.net.http.HttpUtil.executeUrl(HttpUtil.java:130) ~[?:?]
	at org.openhab.core.io.net.http.HttpRequestBuilder.getContentAsString(HttpRequestBuilder.java:135) ~[?:?]
	at org.openhab.binding.icloud.internal.ICloudConnection.callApi(ICloudConnection.java:90) ~[?:?]
	at org.openhab.binding.icloud.internal.ICloudConnection.requestDeviceStatusJSON(ICloudConnection.java:71) ~[?:?]
	at org.openhab.binding.icloud.internal.handler.ICloudAccountBridgeHandler.lambda$0(ICloudAccountBridgeHandler.java:94) ~[?:?]
	at org.openhab.core.cache.ExpiringCache.refreshValue(ExpiringCache.java:101) ~[?:?]
	at org.openhab.core.cache.ExpiringCache.getValue(ExpiringCache.java:72) ~[?:?]
	at org.openhab.binding.icloud.internal.handler.ICloudAccountBridgeHandler.refreshData(ICloudAccountBridgeHandler.java:161) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.util.concurrent.ExecutionException: java.io.EOFException: HttpConnectionOverHTTP@13896b::DecryptedEndPoint@e8f51c{l=/192.168.1.89:57498,r=fmipmobile.icloud.com/17.248.185.207:443,OPEN,fill=-,flush=-,to=300126/0}
	at org.eclipse.jetty.client.util.FutureResponseListener.getResult(FutureResponseListener.java:118) ~[?:?]
	at org.eclipse.jetty.client.util.FutureResponseListener.get(FutureResponseListener.java:101) ~[?:?]
	at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:730) ~[?:?]
	at org.openhab.core.io.net.http.HttpUtil.executeUrlAndGetReponse(HttpUtil.java:251) ~[?:?]
	... 15 more
Caused by: java.io.EOFException: HttpConnectionOverHTTP@13896b::DecryptedEndPoint@e8f51c{l=/192.168.1.89:57498,r=fmipmobile.icloud.com/17.248.185.207:443,OPEN,fill=-,flush=-,to=300126/0}
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.earlyEOF(HttpReceiverOverHTTP.java:376) ~[?:?]
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1614) ~[?:?]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.shutdown(HttpReceiverOverHTTP.java:259) ~[?:?]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:181) ~[?:?]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:79) ~[?:?]
	at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:131) ~[?:?]
	at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:172) ~[?:?]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[?:?]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[?:?]
	at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:555) ~[?:?]
	at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:410) ~[?:?]
	at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:164) ~[?:?]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[?:?]
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) ~[?:?]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) ~[?:?]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) ~[?:?]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) ~[?:?]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) ~[?:?]
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:386) ~[?:?]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) ~[?:?]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) ~[?:?]
	... 1 more

Thanks for any suggestions on how to trouble shoot. I tried disabling and reenabling the iCloud account thing. Before I did that it showed an Online status. Then it on Initializing. I rebooted openhab (systemctl restart openhab), which seems to have at least temporarily have fixed it.

I’m running openHAB 3.3M1 on a Pi4 running openhabian.