What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
If an S3-triggered Lambda is failing, first find out whether S3 failed to hand off the notification or Lambda accepted it and then failed to process it. Those are separate stages: Lambda’s asynchronous retry settings govern errors after Lambda accepts an invocation; they do not define S3’s delivery retry schedule. To reduce the chance of losing work, verify the bucket notification and permissions, configure Lambda’s retry and event-age limits deliberately, and retain failed events in a destination you can monitor and replay.
How S3-to-Lambda event handling works
Amazon S3 event notifications are designed for at-least-once delivery. A notification can be duplicated, and events are not guaranteed to arrive in the order that the underlying operations occurred. Your function should therefore tolerate duplicates and ordering differences. Use an idempotency key or durable deduplication before making downstream changes that must happen only once. AWS describes S3 event notification behavior.
As an Amazon Associate I earn from qualifying purchases.
S3 invokes Lambda asynchronously. That creates two failure points: delivery of the notification from S3 to Lambda, and processing after Lambda has accepted the asynchronous invocation. The AWS documentation describes Lambda’s async retry behavior, but does not establish an exact retry schedule for S3’s direct delivery to Lambda. Do not treat Lambda’s retry settings as controls for S3’s handoff.
Free tools Windows power users keep installed
One-click scans. No signup required.
Why an S3 trigger may not invoke Lambda
Check the bucket notification configuration
Event notifications are configured on the S3 bucket. Confirm that the notification points to the intended Lambda function ARN, includes the expected event types, and has no prefix or suffix filter that excludes the object keys you are testing. The bucket and function must be in the same AWS Region. After saving notification settings in the S3 console, AWS sends a test message to the destination; check whether that validation succeeds.
#1 Best Overall
Verify S3 can invoke the function
The function’s resource-based policy must authorize S3 to invoke it, scoped to the relevant bucket and account as appropriate. Review the permissions and notification configuration together; a correct destination ARN alone does not grant invoke access. See AWS’s S3 trigger permissions guidance.
Resolve destination validation errors
If creating or saving a notification returns Unable to validate the following destination configurations, inspect every destination already configured for that bucket, not just the new one. AWS notes that a stale destination or one with missing permissions can prevent creation of another notification. Correct or remove the invalid configuration, then retry. AWS’s S3-to-Lambda setup guide covers this validation issue.
Rank #2
Distinguish delivery failures from function errors
Once Lambda accepts an asynchronous invocation, failures in the function or runtime follow Lambda’s asynchronous error handling. By default, Lambda makes two additional attempts for function errors, waiting one minute and then two minutes between attempts. Throttling and system errors follow a different path: Lambda returns the event to its queue and retries with backoff for up to six hours by default. These are AWS-documented defaults, not guarantees that every event will eventually be processed. Lambda’s asynchronous error handling documentation explains the distinction.
Recommended Free Tools
Events can be discarded when they fail or expire. AWS also warns that under load, events can be deleted from Lambda’s queue without being sent to the function. A retry policy controls attempts; it is not a retention policy. For that reason, retaining failed invocations is a separate part of protecting event-driven work.
Set Lambda retry attempts and event age deliberately
Lambda’s asynchronous invocation configuration exposes MaximumRetryAttempts and MaximumEventAgeInSeconds. AWS documents a function-error retry range of zero to two additional attempts and a maximum event age of six hours. The default function-error retry delays are one minute and two minutes; the six-hour default retry window applies to throttling and system errors. These settings apply to Lambda’s asynchronous processing, not S3’s notification delivery. See the Lambda async configuration reference.
- More attempts: Can help with transient function failures, but prolongs processing and can repeat side effects. Make processing idempotent.
- Shorter event age: Can prevent stale work from running, but means events expire sooner. Choose it only when the business process can tolerate that loss or a separate recovery path retains failures.
- Concurrency and downstream capacity: Insufficient available concurrency can throttle invocations and build a queue. Check reserved and account concurrency alongside the capacity of databases, APIs, and other dependencies.
Use CloudWatch alarms for errors and throttles so a growing failure or backlog is visible before events age out. AWS advises functions to handle duplicate events gracefully and have enough concurrency for invocations. Lambda’s error-handling guidance discusses these operational risks.
Rank #4
Retain failures so they can be inspected and replayed
Configure an on-failure destination or a dead-letter queue (DLQ) for Lambda’s asynchronous invocation. They serve related but different recovery needs: a DLQ preserves discarded event content, while an on-failure destination can carry an invocation record with request and response details. Select based on what operators need to diagnose and recover the failure.
| Recovery option | What it retains | Supported target types | How recovery works |
|---|---|---|---|
| Dead-letter queue | Event content for discarded invocations | Standard SQS queue or SNS topic | Consume the message from the queue or retrieve it manually, then reprocess it. |
| On-failure destination | Invocation record details, including request and response information | Standard SQS, standard SNS, S3 (on failure only), Lambda, or EventBridge | Inspect the record and use a controlled consumer or reprocessor to recover the event. |
With SQS, operators can retrieve messages from a queue for later handling; SNS can fan out to multiple subscribers. An on-failure destination provides additional target choices and invocation metadata. These are Lambda async failure mechanisms, not a record of notifications that S3 never managed to deliver to Lambda. AWS documents destination and DLQ behavior.
Best Value
Check destination permissions and delivery health
Grant the Lambda execution role permission to deliver to the chosen destination. A configured destination can still fail if its type, permissions, or size constraints are invalid. Monitor Lambda’s DestinationDeliveryFailures metric as well as function errors and throttles; otherwise the failure-capture mechanism may itself be failing unnoticed. AWS documents this metric and the configuration requirements in its async record retention guidance.
Use a controlled replay process
- Alert on function errors, throttles, and destination delivery failures.
- Inspect the retained event or invocation record and identify whether the cause is code, permissions, capacity, or a downstream dependency.
- Correct the underlying problem before retrying the work.
- Replay through a controlled reprocessor, making sure its handling of duplicates is idempotent.
AWS documents reprocessing DLQ events by consuming them from the queue or retrieving them manually. Retained records help with failures Lambda captured; they do not substitute for investigating a trigger configuration that prevents invocation in the first place.
Prevent recursive triggers and incompatible destinations
A function that writes objects back to the same bucket can trigger itself repeatedly if those writes match the notification rules. Use separate input and output buckets, or narrow the notification with a prefix filter so output objects are excluded. Confirm the filter against the actual object-key paths your function writes. S3 notification guidance describes this loop risk.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11S3 direct event notifications do not support SQS FIFO queues as destinations. If FIFO ordering is required downstream, route S3 events through EventBridge and then to the FIFO queue. This changes the routing architecture; it does not make S3 notifications arrive in order. See the S3 notification documentation for supported destinations and routing options.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




