SOA-C02 Monitoring, Logging, and Remediation Practice Question
A SysOps administrator is troubleshooting a Lambda function that is not processing messages from an SQS queue. The function is subscribed to the queue via an event source mapping. The function has a reserved concurrency of 0. Which TWO actions will resolve the issue?
⚠ Common exam trap
The trap here is that candidates often overlook reserved concurrency of 0 as a valid configuration that completely blocks invocations, and instead focus on permissions or queue settings, not realizing that a concurrency limit of 0 is a deliberate disablement mechanism.
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
✓
Set the reserved concurrency to a value greater than 0.
Reserved concurrency of 0 means the Lambda function has no available execution capacity, so it cannot process any invocations, including those from SQS. Setting reserved concurrency to a value greater than 0 (e.g., 1 or more) allocates the necessary execution slots for the function to run. This directly resolves the issue because the event source mapping will successfully invoke the function only when concurrency is available.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Add SQS permissions to the Lambda execution role.
Why it's wrong here
Adding SQS permissions to the Lambda execution role grants the function identity access to poll, receive, and delete messages from the queue, but it does not affect Lambda's ability to launch execution environments. When reserved concurrency is set to 0, the Lambda service throttles every invocation before your code runs, so even a perfectly permissioned role will never see a message delivered. IAM permissions are a prerequisite for SQS integration, but they cannot overcome an explicit concurrency cap of zero.
- ✗
Configure a dead-letter queue for the Lambda function.
Why it's wrong here
A dead-letter queue (DLQ) is a destination for events that have failed after all retries or exhausted the maximum-age limit; it is a safety net, not a processing enabler. If the function has zero reserved concurrency, events are throttled and may be discarded or retained depending on source type, but configuring a DLQ only redirects failures and still does not allow a single invocation to succeed. The root cause remains the concurrency configuration, not error-handling policy.
- ✓
Set the reserved concurrency to a value greater than 0.
Why this is correct
Reserved concurrency of 0 is an intentional hard throttle that blocks all function invocations, causing Lambda to return a throttling error for every request. By raising reserved concurrency to any positive value, you grant the function a dedicated pool of execution capacity, allowing the event source mapping to successfully invoke it. This is the most direct fix when the function cannot execute at all, because it removes the service-level blocking condition that prevents both synchronous and event source mapping invocations.
- ✓
Enable the event source mapping if it is disabled.
Why this is correct
If the event source mapping is in the Disabled state, Lambda does not poll the configured SQS queue, so messages remain in the queue and no invocations occur, even if concurrency is healthy. Enabling the mapping restores the polling loop and is a necessary step when the mapping has been deliberately or accidentally turned off. This is a separate failure mode from a zero concurrency setting; both can exist independently, but if the mapping is disabled, enabling it is a correct and valid remediation.
- ✗
Increase the batch size in the event source mapping.
Why it's wrong here
Batch size controls how many records from the SQS queue are included in a single Lambda invocation, and increasing it can improve throughput by reducing per-message overhead. However, if the function has zero reserved concurrency, every invocation—regardless of batch size—is throttled before execution, so no messages are processed at all. Changing batch size is a performance-tuning lever after the invocation path is unblocked, not a solution to a complete lack of execution capacity.
Visual reference
Quick reference
Cloud Service Model Comparison
| Model | You Manage | Provider Manages | Examples |
|---|---|---|---|
| IaaS | OS, runtime, apps, data | Hardware, hypervisor, networking | EC2, Azure VMs, GCP Compute Engine |
| PaaS | Apps and data | OS, runtime, middleware, hardware | Elastic Beanstalk, Azure App Service |
| SaaS | Data and settings only | Everything else | Microsoft 365, Salesforce, Workday |
| FaaS / Serverless | Function code only | Infra, scaling, runtime | Lambda, Azure Functions, Cloud Run |
| CaaS | Containers and apps | Kubernetes, OS, hardware | EKS, AKS, GKE |
Go deeper
Related to this question
About these practice questions
One of 1,169 original SOA-C02 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This SOA-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 SOA-C02 exam.