Klose
Klose

Reputation: 373

Error Unable to setup base domain mappings for serverless custom domain

In serverless.yml, under custom, I have the following code (with dummy values here):

customDomain:
    domainName: myhost.mydomain.com
    basePath: ''
    stage: ${self:provider:stage}
    createRouteS3Record: true
    endpointType: 'edge'
    securityPolicy: tls_1_2
    certificateArn: 'arn:aws:acm:.................'
    hostZoneId: 'P4OCK4S1PSTZK' 

when I execute serverless deploy, everything goes smooth. the Api get generated properly for my function. (Under functions i have events: http)

However after the API getting generated lambda getting deployed, I get the following error:

Error: Error: Unable to setup base domain mappings for myhost.mydomain.com

i do not get much info other than https://forum.serverless.com/t/error-unable-to-setup-base-domain-mappings/11395 Do not know how to include api versions in serverless if that is the solution.

Upvotes: 6

Views: 6539

Answers (4)

Merouane T.
Merouane T.

Reputation: 876

I was getting that error message because I (somehow) got the same api duplicated. so I went to

API Gateway -> Custom domain name -> {name_of_my_domain} -> API Mappings -> Configure API Mappings

Then I changed the API to use the correct API (holding the routes I was having in my app, and I could differentiate between both using their ID). Redeploying with Serverless succeeded

Upvotes: 0

Pran R.V
Pran R.V

Reputation: 1158

Had the same issue. In my serverless.yml file in events inside functions I was having 'httpApi'. Changing it to 'http' fixed my issue

functions:
 getWebHooks:
   handler: src/path
   events:
    - httpApi:
       path: /

to

functions:
 getWebHooks:
   handler: src/path
   events:
    - http:
       path: /

Upvotes: 0

tschumann
tschumann

Reputation: 3256

I got this error after having a domain mapping, then removing it, then trying to add it again: it looks like Serverless doesn't completely remove a domain mapping.

I had to go to Custom domain names -> my domain -> API mappings -> Configure API mappings and manually delete the domain mapping before redeploying.

Upvotes: 4

Klose
Klose

Reputation: 373

Well small things can cause big problems and are very hard to figure out at times. I found that stage: ${self:provider:stage} was wrong, it should have been stage: ${self:provider.stage}. The colon after provider was the culprit.

Upvotes: 4

Related Questions