# Amazon SES "Configuration set does not exist": Causes and Fix

Source: https://wraps.dev/ses/errors/configuration-set-does-not-exist

Why SES rejects a send with ConfigurationSetDoesNotExistException, why the region is usually the cause, and the three ways to fix it.

## The error

```
Configuration set <ConfigurationSetName> does not exist.
```

AWS exception `ConfigurationSetDoesNotExistException`. The Wraps CLI reports it as `SES_CONFIG_SET_MISSING`.

## Why this happens

The send named a configuration set that SES cannot find in the region the request went to. Configuration sets are regional resources, so one created in us-east-1 does not exist in eu-west-1 even though the name is identical.

-   The configuration set does not exist in the region the request was sent to.
-   The name in the request does not match the name in SES, including case.
-   The configuration set was deleted, or was never created in this account.

## How to fix it

1.  ### 1. List the configuration sets in the sending region
    
    Confirm what actually exists where you are sending from before changing the code. The list is the fastest way to tell a wrong name from a wrong region.
    
    ```
    aws sesv2 list-configuration-sets --region us-east-1
    ```
    
2.  ### 2. Create it, switch regions, or drop the parameter
    
    Three fixes, in order of how much you care about event tracking: create the configuration set in this region, point the send at the region where it already exists, or remove ConfigurationSetName from the request and lose the event stream it feeds.
    
3.  ### 3. Check for a default configuration set on the identity
    
    If you did not set ConfigurationSetName yourself, an identity-level default may be supplying it. That default can outlive the configuration set it names.
    

## How to stop it recurring

### Deploy the configuration set with the code that uses it

A configuration set created by hand in the console and referenced from application code will eventually diverge. Create it as infrastructure alongside the sender.

### Make the region one value

Nearly every occurrence is one region in the deploy and another in the send. Read both from the same configuration value.

## Common questions

### Are SES configuration sets regional?

Yes. A configuration set exists in one region only. The same name in another region is a different, and possibly missing, resource.

### Can I send without a configuration set?

Yes. Remove ConfigurationSetName from the request and the send goes through. You lose the event publishing that configuration set was feeding, which is usually why it was there.

### Why does SES say the configuration set is missing when I can see it in the console?

Check the region selector in the console against the region your SDK client is configured for. Seeing it in one region says nothing about the other.

### Does deleting a configuration set break existing sends?

Yes, immediately, for any send that names it, including sends that inherit it as an identity-level default rather than passing it explicitly.

## What Wraps does about this

Wraps deploys the configuration set as part of the email stack, in the region it deploys into, so the name in the send and the resource in SES come from the same place. The CLI maps this exception to SES\_CONFIG\_SET\_MISSING and names the three fixes above. A configuration set you created by hand is still yours to reconcile.
