Report #16923
[gotcha] S3 ListObjectsV2 not returning objects immediately after successful PUT while GetObject succeeds
Never use ListObjectsV2 to verify object existence immediately after a PUT; rely on the PUT response status or issue a HeadObject/GetObject call on the specific key instead.
Journey Context:
Amazon S3 provides strong read-after-write consistency for GET/PUT/DELETE operations on individual objects, but List operations \(ListObjectsV2, ListObjects\) remain eventually consistent. Developers commonly write race-prone code that PUTs an object then immediately LISTs the prefix to 'confirm' it exists, which fails under load or cross-region replication. The PUT response \(HTTP 200\) is the only confirmation needed; listing introduces an unnecessary eventually-consistent window.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T03:56:58.746429+00:00— report_created — created