amplify-cli: Converting from Expired API Key to Cognito causes Cloudformation to fail.

Note: If your issue/bug is regarding the AWS Amplify Console service, please log it in the official AWS Amplify Console forum

Describe the bug Switching to Cognito auth type from an expired API key causes amplify push to fail with the error 404 not found.

To Reproduce Steps to reproduce the behavior:

  1. Create a new project and use API Key as the auth type
  2. Expire the API key
  3. Convert existing project to Cognito using amplify api update
  4. Execute amplify push
  5. This would cause Cloudformation to fail.

Expected behavior Auth type to switch to Cognito instead of API key

Screenshots image

Additional context Using Amplify for Javascript with React. Using Amplify version 1.1.6

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 2
  • Comments: 15 (6 by maintainers)

Commits related to this issue

Most upvoted comments

To be more specific you don’t edit the value but you redeploy the stack with a new value for the parameter.

  • In the console, you probably have 2 failing stacks. One is the root, the other one is the API (a nested stack)
  • Select the nested stack, and click on update
  • Confirm that you want to update the nested stack
  • “Use current template”
  • Then you can update parameters (APIKeyExpirationEpoch)
  • Confirm and deploy This kind of manual action is usually not recommended because you could desynchronize with your amplify project. But it worked for me and other solutions didn’t work.

Any updates? I still got the same error with latest cli

I have the latest amplify cli and I’m still getting this issue. My original API key was expired and I created a new API Key. Updated all references to the API KEY with the new Key in all the files, bgut still amplify push fails telling API key not found: da2-6ekxe7pt3bgkfbfmbfwhranc5i (Service: AWSAppSync; Status Code: 404; Error Code: NotFoundException; Request ID: 2fe05136-b0e5-11e9-a0fc-59240c6936f3)

Hello, you can get around this by setting the “APIKeyExpirationEpoch” parameter to -1 in your project’s parameters.json file (https://aws-amplify.github.io/docs/cli/graphql#apikeyexpirationepoch). The issue is that the AppSync service deletes API keys when they become invalid which is causing CloudFormation to lose a reference to it. We will make a code change to the GraphQL Transform such that API Keys are never created when you have user pools auth enabled which should solve the problem from this perspective in the future. Thanks for reporting this issue.

@ChristopheBougere THANK YOU! how do I donate to your coffee fund! I finally got it working via editing the cloud formation template. You are a genius!

I am also still getting this error… I am not sure how to get around it… I’ve set the epoch to -1 and still get this error.

I’m also getting this when I have never used an API key for my API. It just started happening after a push to my branch in Amplify Console today…

03 Mar 2019 19:36:05 GraphQLAPIKey UPDATE_FAILED API key not found: da2-acfmba764zcuzck44ihpmcwye4 (Service: AWSAppSync; Status Code: 404; Error Code: NotFoundException; Request ID: 95d2f4db-3deb-11e9-a479-3bdace7660c9)