Files
archived-next-auth/www/docs/errors.md
Balázs Orbán ca0ed1e2a8 feat(react): create client tailored to React (#1473)
**What**:

These changes ensure that we work more tightly with React that can also result in unforeseen performance boosts. In case we would decide on expanding to other libraries/frameworks, a new file per framework could be added.

**Why**:

Some performance issues (https://github.com/nextauthjs/next-auth/issues/844) could only be fixed by moving more of the client code into the `Provider`.

**How**:

Refactoring `next-auth/client`

Related: #1461, #1084, #1462

BREAKING CHANGE:
**1.** `next-auth/client` is renamed to `next-auth/react`.

**2.** In the past, we exposed most of the functions with different names for convenience. To simplify our source code, the new React specific client code exports only the following functions, listed with the necessary changes:

- `setOptions`: Not exposed anymore, use `SessionProvider` props
- `options`: Not exposed anymore, use `SessionProvider` props
- `session`: Rename to `getSession`
- `providers`: Rename to `getProviders`
- `csrfToken`: Rename to `getCsrfToken`
- `signin`: Rename to `signIn`
- `signout`: Rename to `signOut`
- `Provider`: Rename to `SessionProvider`

**3.** `Provider` changes.
- `Provider` is renamed to `SessionProvider`
- The `options` prop is now flattened as the props of `SessionProvider`.
- `clientMaxAge` has been renamed to `staleTime`.
- `keepAlive` has been renamed to `refetchInterval`.
An example of the changes:
```diff
- <Provider options={{clientMaxAge: 0, keepAlive: 0}}>{children}</Provider>
+ <SessionProvider staleTime={0} refetchInterval={0}>{children}</SessionProvider> 
```

**4.** It is now **required** to wrap the part of your application that uses `useSession` into a `SessionProvider`.

Usually, the best place for this is in your `pages/_app.jsx` file:

```jsx
import { SessionProvider } from "next-auth/react"

export default function App({
  Component,
  pageProps: { session, ...pageProps }
}) {
  return (
    // `session` comes from `getServerSideProps` or `getInitialProps`.
    // Avoids flickering/session loading on first load.
    <SessionProvider session={session}>
      <Component {...pageProps} />
    </SessionProvider>
  )
}
```
2021-06-11 21:59:36 +02:00

4.1 KiB

id, title
id title
errors Errors

This is a list of errors output from NextAuth.js.

All errors indicate an unexpected problem, you should not expect to see errors.

If you are seeing any of these errors in the console, something is wrong.


Client

These errors are returned from the client. As the client is Universal JavaScript (or "Isomorphic JavaScript") it can be run on the client or server, so these errors can occur in both in the terminal and in the browser console.

CLIENT_SESSION_ERROR

This error occurs when the SessionProvider Context has a problem fetching session data.

CLIENT_FETCH_ERROR

If you see CLIENT_FETCH_ERROR make sure you have configured the NEXTAUTH_URL environment variable.


Server

These errors are displayed on the terminal.

OAuth

OAUTH_GET_ACCESS_TOKEN_ERROR

OAUTH_V1_GET_ACCESS_TOKEN_ERROR

OAUTH_GET_PROFILE_ERROR

OAUTH_PARSE_PROFILE_ERROR

OAUTH_CALLBACK_HANDLER_ERROR


Signin / Callback

GET_AUTHORIZATION_URL_ERROR

SIGNIN_OAUTH_ERROR

CALLBACK_OAUTH_ERROR

SIGNIN_EMAIL_ERROR

CALLBACK_EMAIL_ERROR

EMAIL_REQUIRES_ADAPTER_ERROR

The Email authentication provider can only be used if a database is configured.

CALLBACK_CREDENTIALS_JWT_ERROR

The Credentials Provider can only be used if JSON Web Tokens are used for sessions.

JSON Web Tokens are used for Sessions by default if you have not specified a database. However if you are using a database, then Database Sessions are enabled by default and you need to explicitly enable JWT Sessions to use the Credentials Provider.

If you are using a Credentials Provider, NextAuth.js will not persist users or sessions in a database - user accounts used with the Credentials Provider must be created and managed outside of NextAuth.js.

In most cases it does not make sense to specify a database in NextAuth.js options and support a Credentials Provider.

CALLBACK_CREDENTIALS_HANDLER_ERROR

PKCE_ERROR

The provider you tried to use failed when setting PKCE or Proof Key for Code Exchange. The code_verifier is saved in a cookie called (by default) __Secure-next-auth.pkce.code_verifier which expires after 15 minutes. Check if cookies.pkceCodeVerifier is configured correctly. The default code_challenge_method is "S256". This is currently not configurable to "plain", as it is not recommended, and in most cases it is only supported for backward compatibility.


Session Handling

JWT_SESSION_ERROR

https://next-auth.js.org/errors#jwt_session_error JWKKeySupport: the key does not support HS512 verify algorithm

The algorithm used for generating your key isn't listed as supported. You can generate a HS512 key using

  jose newkey -s 512 -t oct -a HS512

If you are unable to use an HS512 key (for example to interoperate with other services) you can define what is supported using

  jwt: {
    signingKey: {"kty":"oct","kid":"--","alg":"HS256","k":"--"},
    verificationOptions: {
      algorithms: ["HS256"]
    }
  }

SESSION_ERROR


Signout

SIGNOUT_ERROR


Database

These errors are logged by the TypeORM Adapter, which is the default database adapter.

They all indicate a problem interacting with the database.

ADAPTER_CONNECTION_ERROR

CREATE_USER_ERROR

GET_USER_BY_ID_ERROR

GET_USER_BY_EMAIL_ERROR

GET_USER_BY_PROVIDER_ACCOUNT_ID_ERROR

CREATE_SESSION_ERROR

GET_SESSION_ERROR

UPDATE_SESSION_ERROR

DELETE_SESSION_ERROR

CREATE_VERIFICATION_REQUEST_ERROR

GET_VERIFICATION_REQUEST_ERROR

DELETE_VERIFICATION_REQUEST_ERROR


Other

SEND_VERIFICATION_EMAIL_ERROR

This error occurs when the Email Authentication Provider is unable to send an email.

Check your mail server configuration.

MISSING_NEXTAUTH_API_ROUTE_ERROR

This error happens when [...nextauth].js file is not found inside pages/api/auth.

Make sure the file is there and the filename is written correctly.