Report #49420
[gotcha] S3 ListObjectsV2 returns stale results immediately after PutObject
Do not use LIST operations for read-after-write consistency checks; verify object existence via HEAD or GET on the specific key, or implement exponential backoff retries for LIST-dependent workflows.
Journey Context:
Developers building data pipelines often create an object then immediately list the prefix to confirm or process it, assuming S3's strong read-after-write guarantee applies universally. However, the S3 consistency model explicitly excludes LIST from strong consistency; LIST is only eventually consistent. This causes race conditions where automation reports 'object not found' despite a successful PUT. The robust pattern is to either use the known key name directly \(bypassing LIST\) or to implement idempotent processing that can handle duplicate or missing list entries, rather than relying on LIST immediacy.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T13:26:14.212400+00:00— report_created — created