nRF Cloud, FOTA, Device Manager app questions

I am new to using nRF Cloud.
I am using the free developer account. We intend to move over to a production version in the next week.
I modified our project and added the required FOTA / Memfault settings.
I uploaded a new release to nRF Cloud, along with the symbol file, and then used the Device Manager app to check for updates. I was able to successfully update the device with the new release.
I also tried the process with (a) a release signed with the same key as the device firmware, (b) a release with a different signature, (c) a release with no signature (actually, probably the Nordic default signature). The eventual outcome was as expected.
I was able to successfully upgrade the device firmware using both the Android and the iOS versions o the Device Manager app.


However, there are a few things I noticed that I would like to ask you about.
I thought they might be related to our specific project, so I created a new project based on Peripheral UART sample application, and modified it for OTA, Memfault etc. I observed the same behaviour, as listed below.


The modified Peripheral UART project is running on nRF54L15DK, with SDK 2.9.2
For both Android and iOS, I am using the latest Device Manager apps.

Steps and Observations
Check for update: pop-up correctly informs user of new release available
Download file: Takes only a few seconds
Start: I chose CONFIRM only
Upload file to device: This takes 6 or 7 seconds (10 seconds with iOS). During this time, the STATE indicated on the app is “UPLOADING…”
Swapping: Until device resets and indicates new version (via UART): This takes about 100 seconds. During this time, the state indicated on the app is “RESETTING…”.

Android behaviour
After the device has completed its swap, and is now running the new firmware, the app still indicates state RESETTING. When the app’s programmable Expected Swap Time expires (e.g. 3 minutes), the app state then indicates UPLOAD COMPLETE.
If I set the swap time to, say, 8 minutes, I observe the same. The device is running the new firmware after approx. 100 seconds, but the app does not indicate the upload is complete for 8 minutes.
Regardless, after the app has indicated the upload is complete, I refresh the nRF Cloud “Devices” page, but it still indicates that the device has its previous firmware version. I wait another 10 minutes, and there is no change. I reconnect the Android app, and connect (sending the “hello!”), but still nRF Cloud indicates the device has its old firmware version.
It is not until I then click Check for Updates in the app, and the app’s pop-up confirms that the device is running the latest firmware, it is after this step that nRF Cloud finally indicates that the device is now running the latest firmware.
Note: If I set the app’s Expected Swap Time to, say, 1 minute (i.e. less than the time it will take), the app’s state will change from RESETTING… to UPLOAD COMPLETE… after 1 minute, even though the device has not yet finished swapping


iOS behaviour.
I could not find a way of seeing / modifying the app’s Expected Swap Time, so I went ahead and performed the update. The app indicated UPLOAD COMPLETE approx.. 10 seconds after uploading the file to the device. The device took another 90 seconds plus, to complete the swap.

Questions
Question 1: What is the expected behaviour of the app? When should it change state from RESETTING to UPLOAD COMPLETE?
Question 2: How is the app meant to know when the device has successfully completed the swap, and is now running the new firmware?
Question 3: How is nRF Cloud meant to know that a device has updated its firmware – should this information not be sent automatically from the app, after the swap occurs, without the user having to reconnect the app and device, and then select Check for Updates?
Question 4: The “Expected Swap Time” setting in the Android app does not seem to have any affect on the process other than trigger the state change from RESETTING to UPLOAD COMPLETE. Is this meant to have a different functionality?
Question 5: Finally, at one stage I had two releases activated in nRF Cloud. Let’s say the device was running 0.01, and 0.02 was released, and later 0.03 was released. When I then connected the app to the device, and selected Check for Updates, the app pop-up indicated that version 0.02 was available. I would have expected to indicate the newest (0.03) version. I then deleted v0.02 in nRF Cloud, and tried again, and this time it indicated v0.03 was available. Note: Neither release had the “Must Pass Through” setting selected.

UPDATE

I tried using TEST AND CONFRIM option (increasing the swap time to 4 minutes), and after about 4 mins, the state changed to GATT CONN TERMINATE LOCAL HOST

Thanks in advance for your feedback on these observations and questions.

Related