> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dynamic.xyz/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# onAuthFailure

> [card] Recommended: JavaScript SDK with React Hooks
>
> For new React apps, we recommend the JavaScript SDK with React Hooks (`@dynamic-labs-sdk/react-hooks`) instead of the legacy React SDK documented here. The JS SDK comes with many benefits such as a much smaller bundle size and other optimizations. Use the [React quickstart (JavaScript SDK)](https://docs.dynamic.xyz/docs/javascript/reference/react-quickstart.md) to get started.

### Summary

This callback will be called when an authentication process fails.

This can be either caused by an error or by the user cancelling the process.

### Usage

```TypeScript theme={"system"}
<DynamicContextProvider
  settings={{
    events: {
      onAuthFailure: (method, reason) => {
        console.log('onAuthFailure was called', method, reason);
      }
    }
  }}
>
 {/* ... rest of your app ... */}
</DynamicContextProvider>
```

### Callback Argument Values

First argument `method`:

```TypeScript theme={"system"}
{
  type: "email";
  email: string;
  isEmailRecoveryFlow?: boolean;
  // Same as "email"
  option: string;
} | {
  type: "social";
  provider: ProviderEnum;
  // Same as "provider"
  option: ProviderEnum;
} | {
  type: "wallet";
  address: string;
  connectorName: string;
  // Same as "connectorName"
  option: string;
} | {
  type: "sms";
  phone: PhoneData;
  // Same as "phone"
  option: PhoneData;
}
```

Second argument `reason`:

```TypeScript theme={"system"}
'user-cancelled' | { error: unknown }
```

> [!NOTE]
>
> For details about ProviderEnum, see [here](https://docs.dynamic.xyz/docs/react/reference/objects/verified-credential.md#providerenum)
>
> For details about PhoneData, see [here](https://docs.dynamic.xyz/docs/react/reference/objects/phone-data.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.