Every update is saved first and processed afterwards. If one is left over, for example after a restart, the app picks it up. If a transfer doesn't go through, the app retries it over twelve hours, with growing gaps between attempts.
If the app itself was unreachable for more than 15 minutes, it starts a sync on its own afterwards for every group with real-time sync on. If a sync finds differences even though real-time sync was running, it brings them back in line and reports it on the Overview page as "Missed real-time changes".
Anything that still failed after all retries is listed on the Overview page under "Needs your attention". Once you've fixed the cause, you queue it again from there. An inventory update stays there for 30 days, then the app deletes it.