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

# TapErrorState

> Renders the centred failure message a surface shows in place of its content.

```ts theme={null}
function TapErrorState(__namedParameters): ReactElement;
```

Renders the centred failure message a surface shows in place of its content.

## Parameters

### \_\_namedParameters

[`TapErrorStateProps`](/extensions/reference/frontend-api/Interface.TapErrorStateProps)

## Returns

`ReactElement`

## Remarks

Carries `role="alert"`, so the host announces it, and draws the title in
`--tap-danger`. The Retry button appears only with `onRetry`; wire it to the
`refetch` of every read the surface needs. Pass the failure's own `message` as
the description — an error from `useTapServer` carries the text your server sent
the owner — and the `code` of a `TapError` or `TapServerError` as `code`.

## Example

```tsx theme={null}
import { TapErrorState, useTapQuery } from '@tappify/extension-sdk';

function Crashes() {
  const crashes = useTapQuery({
    kind: 'crashes',
    range: { from: '2026-09-01', to: '2026-09-08' },
  });
  if (crashes.error !== null) {
    return (
      <TapErrorState
        title="Crashes did not load"
        description={crashes.error.message}
        onRetry={crashes.refetch}
      />
    );
  }
  return <span>{crashes.data?.issues.length ?? 0} issues</span>;
}
```
