Report #15203
[gotcha] S3 LIST operations are eventually consistent despite strong read-after-write consistency for PUTs
Do not rely on LIST \(ListObjects/ListObjectsV2\) to immediately reflect newly PUT objects. For read-after-write guarantees, use GET on the specific object key or use S3 Event Notifications to trigger downstream logic rather than polling LIST.
Journey Context:
Many developers assume S3's strong consistency \(announced 2020\) applies to all operations. However, LIST operations remain eventually consistent. This causes silent failures in data pipelines that PUT a file then immediately LIST the prefix to 'verify' it exists, or count objects. The race window is usually small but non-zero under high concurrency or cross-region replication. Alternatives like S3 Select or Inventory reports have their own latency tradeoffs. The right call is to treat LIST as eventually consistent and use object-level operations or event-driven patterns for strong guarantees.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T23:23:40.002421+00:00— report_created — created