> ## 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 title="Recommended: JavaScript SDK with React Hooks" icon="react" color="#4779FE">
  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)](/javascript/reference/react-quickstart) to get started.
</Card>

### 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](/react/reference/objects/verified-credential#providerenum)

  For details about PhoneData, see [here](/react/reference/objects/phone-data)
</Note>
