If you are running into a missing configuration or NoCredentials
error message and have called Amplify.configure
in your project, your Amplify API is most likely being called before Amplify.configure
. This can happen in a few different ways. Below are three possibilities you can check to troubleshoot this issue.
Amplify.configure
is called in the root of your project
Make sure you are calling Amplify.configure
in the root file of your project. The root file of your app may be different depending on your frontend framework. The current default for some common frameworks are listed below (if you are not using TypeScript the ts
and tsx
extensions would be js
and jsx
):
If you are using the Next.js App Router, you can follow the suggestions in our Next.js documentation for root-level configuration. Keep in mind that if you are calling any APIs at the module-level (i.e. at the top of your file) in any of the Child components, you may still run into this issue. Continue on the Check 2 if this is the case.
Check 2: Move module-level Amplify API invocationsWhen Amplify APIs are used outside of your application lifecycle, there is a risk that a JavaScript bundler may place that API call before Amplify.configure
. Module-level function calls (calls at the top-level of a file), are generally evaluated in the order that they are imported.
Below is an example of code that will likely result in a missing configuration or NoCredentials
error message:
This error can also happen when using Next.js Layouts and calling Amplify APIs in child components at the module-level (at the top of your file/module). See below for an example of this issue:
To fix this, we suggest moving all Amplify API calls to within the application lifecycle. For instance, if you are using React, you can use the useEffect
hook for functions that should run before the app is loaded:
If you are working in a multi-page app, you need to call Amplify.configure()
for each page/route of your application. We recommend calling Amplify.configure
in a common source file and importing it into each page.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4