Why do I get the error "Configuration is ambiguously defined" when creating an Amazon S3 event notification to trigger my Lambda function?

Last updated: 2019-10-24

I'm trying to create an Amazon Simple Storage Service (Amazon S3) bucket event notification to trigger my AWS Lambda function. Why am I getting the error "Configuration is ambiguously defined. Cannot have overlapping suffixes in two rules if the prefixes are overlapping for the same event type."?

Short Description

You get this error if your new notification's event information and its prefix or suffix value overlap with existing notification configuration information on your S3 bucket. This can occur when you're:

  • Recreating an S3 event notification that you recently deleted.
  • Creating S3 event notifications for multiple overlapping events using overlapping prefixes or suffixes.

Note: S3 event notification configurations allow overlapping events with non-overlapping prefixes or suffixes, as well as non-overlapping events with overlapping prefixes or suffixes.

For more information and examples, see How to Enable Event Notifications and Configuring Notifications with Object Key Name Filtering.

Resolution

Do either of the following:

Then, do one of the following:

Remove an overlapping event

In the Amazon S3 console, delete an existing event notification that overlaps with the new one that you're trying to create.

Or, update the notification configuration JSON file on your S3 bucket by running the AWS CLI command put-bucket-notification-configuration.

Reconfigure the new notification

Change the object key naming for your S3 bucket namespace to allow multiple overlapping events with non-overlapping prefixes. For example, you could specify that overlapping event objects, such as uploaded images, use a different S3 bucket folder (prefix) depending on the image file type (suffix):

  • S3://mybucket/uploadedJPEG
  • S3://mybucket/uploadedGIF

Redesign for your use case

If you can't reconfigure your S3 event notification to avoid the overlap, try redesigning your architecture to work around it. For example:

Tip: For more complex architecture and processes, use an AWS Step Functions state machine to design and manage your workflow. For more information, see AWS Step Functions Use Cases and Tutorials.