Report #17313
[gotcha] S3 ListObjectsV2 missing objects immediately after PutObject despite strong read-after-write
Do not use ListObjects to verify immediate PUT success; track uploaded keys client-side or use HeadObject with retry logic instead of LIST.
Journey Context:
Since Dec 2020, S3 offers strong read-after-write consistency for GET/PUT/DELETE operations, so GetObject immediately after PutObject always succeeds. However, LIST operations \(ListObjects, ListObjectsV2\) remain eventually consistent. Applications that PUT an object then immediately LIST to verify \(e.g., checking if upload succeeded, or listing directory contents\) will see missing objects intermittently. The fix is to trust the PUT success response \(HTTP 200\) and track state client-side, or use HeadObject to verify specific keys rather than listing prefixes.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T04:57:46.120337+00:00— report_created — created