I've been working with Arduino IoT Cloud for a month or so using several MKR WiFi 1010 boards and I've found IoT Cloud to be unstable in connecting to the MKR. If I disconnect the MKR from wifi for a day and then reconnect it, I can't get IoT Cloud to reconnect. I've tried resetting the MKR, reloading the IoT Cloud pages, refreshing the devices on IoT Cloud. The odd thing is that I am usually able to download a sketch from IoT Cloud to the MKR through the USB cable from my Mac (running Big Sur). Even after a successful download, IoT Cloud still thinks my MKR is offline. I've confirmed that the MKR is connected to my wifi. The only explanation I can think of is that I've changed MKR 1010 boards a couple of times and detached the Thing from one board and reattached to another MKR 1010. However, the last time I did this, the MKR 1010 connected to IoT Cloud without a problem and I received valid data on the IoT Cloud dashboard, as well as my iPhone's IoT Cloud app from the MKR ENV Shield attached to the MKR 1010. It's not a problem with the sketch since it's been working properly for a while.
When I disconnected the MKR 1010/ENV board from power two days ago and then reconnected them to power on the same wifi network today, I could not get IoT Cloud to recognize the MKR as being online. I tried downloading the same sketch to the same board and it worked.
I'm running WiFiNINA firmware version 1.4.1, which is the latest that I can get with the Arduino IDE and checks OK when I run the WiFiNINA Check Firmware Version sketch.
At this point, I think that IoT Cloud is unstable. It's taking way too much time to deal with when I would like to be using it instead of dealing with instability. My improvement recommendation would be to investigate the instability and fix it.