DOP-C02 SDLC Automation Practice Question
A team uses AWS CodePipeline with a source action from an Amazon S3 bucket. The pipeline triggers on changes to the S3 bucket, but sometimes runs twice for a single commit. What is the most likely cause?
⚠ Common exam trap
Candidates often assume S3 event notifications are exactly-once, leading them to incorrectly suspect versioning or a missing deduplication setting, rather than recognizing S3's inherent at-least-once delivery behavior.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
S3 event notifications for the same object may be delivered more than once.
Amazon S3 event notifications are designed for at-least-once delivery, meaning the same event (e.g., an object PUT) can be delivered multiple times. When CodePipeline uses S3 as a source, it relies on these notifications to trigger the pipeline. If S3 sends duplicate notifications for the same object version, CodePipeline will start a new execution for each notification, causing the pipeline to run twice for a single commit.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
CodePipeline has a deduplication setting that is disabled.
Why it's wrong here
CodePipeline does not expose any 'deduplication' setting for source actions; executions are created for every distinct source revision event that arrives, and identical or duplicate events can lead to duplicate pipeline executions. There is no built-in throttle that suppresses a second invocation of the same commit or object version. Therefore, the absence of a deduplication toggle cannot explain the duplicate run.
- ✓
S3 event notifications for the same object may be delivered more than once.
Why this is correct
Amazon S3 event notifications are designed with at-least-once delivery semantics, meaning the same s3:ObjectCreated:Put event can be delivered more than once, especially during retries or internal service-side replication. Each delivered notification is seen by CodePipeline as a new source change, so a single object upload can start duplicate pipeline executions. Versioning is irrelevant to this behavior because the duplicate is a delivery-level retry, not a new object version.
- ✗
The S3 bucket has versioning enabled.
Why it's wrong here
Enabling S3 versioning creates a new object version for each write, but S3 still emits exactly one event per write (per delivery attempt) and CodePipeline is designed to act on the latest version. Versioning can affect which version is fetched, but it does not cause the same event to be delivered multiple times. The duplicate issue observed here is a notification delivery property, not a consequence of versioning.
- ✗
The pipeline is also triggered by a CloudWatch Events rule.
Why it's wrong here
A CloudWatch Events rule is not a source of duplicate S3 event notifications; it would be an independent trigger path from S3 to CodePipeline. If both an S3 event notification and a separate EventBridge rule exist for the same bucket, two executions could start for one object creation, but this is a configuration overlap rather than a delivery duplication. The most likely culprit remains S3's at-least-once notification semantics, making this option incorrect as the primary explanation.
Quick reference
AWS S3 Storage Class Comparison
| Storage Class | Min Duration | Retrieval | Use Case |
|---|---|---|---|
| S3 Standard | None | Immediate | Frequently accessed data |
| S3 Standard-IA | 30 days | Immediate | Infrequent access, rapid retrieval |
| S3 One Zone-IA | 30 days | Immediate | Non-critical infrequent data |
| S3 Intelligent-Tiering | None | Immediate–hours | Unknown or changing access patterns |
| S3 Glacier Instant | 90 days | Milliseconds | Archive with instant retrieval |
| S3 Glacier Flexible | 90 days | Minutes–hours | Archive, flexible retrieval |
| S3 Glacier Deep Archive | 180 days | Hours | Long-term compliance archive |
Go deeper
Related to this question
About these practice questions
This DOP-C02 question is part of Courseiva's 1,298-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This DOP-C02 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the DOP-C02 exam.