When you upload a product photo or a packshot, the file is recorded immediately and the work that follows — preparing the file and describing what is in it — is queued to run in the background. That queueing step could fail without anyone noticing. The upload reported success, the photo appeared in your library, and nothing ever processed it: no description, no error, no retry. The only way out was to upload the photo again.
The instruction to process a photo is now saved together with the photo itself, in a single step that either records both or neither. A background process checks for instructions that were not delivered and sends them, so a temporary interruption costs a short delay rather than the work.
The second change is what happens when delivery keeps failing. Previously the photo simply stayed in progress. It is now retried for about an hour, and if it still cannot be handed over, the photo is marked as failed with a reason that identifies this specific problem — so you can tell it apart from a photo the description step could not handle, and you know to try again rather than keep waiting.
Nothing about a normal upload changes: photos are still recorded straight away and processed immediately afterwards.