This might be a edge case where the update did just take that little bit longer than the timeout period but was still finished successful.
An OTA update is a multi pass action.
First the cloud needs to tell the device about a pending update, the device needs to “accept” the update, then the cloud starts sending the firmware in chunks to the the device, the device has to check for integrity and store the firmware in the OTA region in flash, once all chunks have been received successfully, the device will signal successful transfer and then needs to stop the currently running firmware, go offline, transfer the new firmware from the OTA region to the active firmware region in flash and restart.
If the process up to the transfer of the last chunk takes just long enough to almost exhaust the timeout but doing the integrity check and flash store takes just that bit longer, the success report may come too late and hence the cloud “suspects” a failure while it actually worked.
I’m not saying this is what happened in your case, but that’s one possible explanation.