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:
amplify api update
amplify push
Expected behavior
Auth type to switch to Cognito instead of API key
Screenshots
Additional context
Using Amplify for Javascript with React. Using Amplify version 1.1.6
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.
This error also applies if you want to refresh the API Key and your existing one is already expired. The same CloudFormation error occurs.
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)
-- | -- | -- | --
Fix for this has been pushed and released with the latest CLI version 1.1.8.
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)
Any updates? I still got the same error with latest cli
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.
@danieldram I just ran into the same issue and for some reason, @mikeparisstuff workaround wasn't working. My AppSync API is configured in AWS_IAM auth mode, but maybe I changed it at some which led to this error.
The solution was to manually re-deploy the failing CloudFormation stack in the console (click on Update) and overriding the APIKeyExpirationEpoch to -1 there. Trying to deploy locally or from Amplify Console didn't work for me (neither than this one).
@ChristopheBougere thank you so much for the response, do you know where in the console I can edit the APIKeyExpirationEpoch?
To be more specific you don't edit the value but you redeploy the stack with a new value for the parameter.
APIKeyExpirationEpoch
)@ChristopheBougere doesn't seem to work for me.. in the cloudformation console I see all green and when I drill down I find the failing stack, I updated the epoch -1 but still doesn't deploy locally anymore.
@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!
Glad to hear that, cheers!
For some reason I manually deleted the API key of my API and changed authorization to an existing Cognito Pool.
Add one point I got the errors mentioned above.
@ChristopheBougere suggestions of manually updating the stack worked but I also had to set the "CreateApiKey" setting to 0. The expiration epoch alone wasnt doing the trick.
Most helpful comment
To be more specific you don't edit the value but you redeploy the stack with a new value for the parameter.
APIKeyExpirationEpoch
)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.