Power loss mid-write. The single most common way to brick a fleet. A dual-image scheme with atomic switchover removes it; a single-image in-place update does not, however careful the code is.
The partially-successful rollout. Sixty per cent of devices take the update and forty per cent do not, because they were asleep, out of coverage or on a battery too low to risk it. The fleet is now running two versions indefinitely, and the platform has to be correct for both.
The update that works and then does not. A release that boots fine and fails four days later under a condition the canary group did not encounter. This is why the monitoring window matters as much as the canary size.
The unreachable device. A unit that missed several releases and is now too far behind to take the current one. A migration path from any shipped version, not just the previous one, is worth designing early.