
# `useChat` "An error occurred"

## Issue

I am using [`useChat`](/docs/reference/ai-sdk-ui/use-chat) and I get the error "An error occurred".

## Background

Error messages from `streamText` are masked by default when using `toDataStreamResponse` for security reasons (secure-by-default).
This prevents leaking sensitive information to the client.

## Solution

To forward error details to the client or to log errors, use the `getErrorMessage` function when calling `toDataStreamResponse`.

```tsx
export function errorHandler(error: unknown) {
  if (error == null) {
    return 'unknown error';
  }

  if (typeof error === 'string') {
    return error;
  }

  if (error instanceof Error) {
    return error.message;
  }

  return JSON.stringify(error);
}
```

```tsx
const result = streamText({
  // ...
});

return result.toDataStreamResponse({
  getErrorMessage: errorHandler,
});
```

In case you are using `createDataStreamResponse`, you can use the `onError` function when calling `toDataStreamResponse`:

```tsx
const response = createDataStreamResponse({
  // ...
  async execute(dataStream) {
    // ...
  },
  onError: errorHandler,
});
```


## Navigation

- [Azure OpenAI Slow to Stream](/v4/docs/troubleshooting/azure-stream-slow)
- [Client-Side Function Calls Not Invoked](/v4/docs/troubleshooting/client-side-function-calls-not-invoked)
- [Server Actions in Client Components](/v4/docs/troubleshooting/server-actions-in-client-components)
- [useChat/useCompletion stream output contains 0:... instead of text](/v4/docs/troubleshooting/strange-stream-output)
- [Streamable UI Errors](/v4/docs/troubleshooting/streamable-ui-errors)
- [Tool Invocation Missing Result Error](/v4/docs/troubleshooting/tool-invocation-missing-result)
- [Streaming Not Working When Deployed](/v4/docs/troubleshooting/streaming-not-working-when-deployed)
- [Streaming Not Working When Proxied](/v4/docs/troubleshooting/streaming-not-working-when-proxied)
- [Getting Timeouts When Deploying on Vercel](/v4/docs/troubleshooting/timeout-on-vercel)
- [Unclosed Streams](/v4/docs/troubleshooting/unclosed-streams)
- [useChat Failed to Parse Stream](/v4/docs/troubleshooting/use-chat-failed-to-parse-stream)
- [Server Action Plain Objects Error](/v4/docs/troubleshooting/client-stream-error)
- [useChat No Response with maxSteps](/v4/docs/troubleshooting/use-chat-tools-no-response)
- [useChat "An error occurred"](/v4/docs/troubleshooting/use-chat-an-error-occurred)
- [streamText fails silently](/v4/docs/troubleshooting/stream-text-not-working)
- [NaN token counts when using streamText with OpenAI models](/v4/docs/troubleshooting/nan-token-counts-openai-streaming)
- [Model is not assignable to type "LanguageModelV1"](/v4/docs/troubleshooting/model-is-not-assignable-to-type)
- [TypeScript error "Cannot find namespace 'JSX'"](/v4/docs/troubleshooting/typescript-cannot-find-namespace-jsx)
- [React error "Maximum update depth exceeded"](/v4/docs/troubleshooting/react-maximum-update-depth-exceeded)
- [Jest: cannot find module 'ai/rsc'](/v4/docs/troubleshooting/jest-cannot-find-module-ai-rsc)
- [Schema must be JSON Schema of type object error](/v4/docs/troubleshooting/zod-v4-json-schema-type-error)


[Full Sitemap](/sitemap.md)
