Back to Ai

useChat "An error occurred

content/docs/09-troubleshooting/12-use-chat-an-error-occurred.mdx

2.1.101.1 KB
Original Source

useChat "An error occurred"

Issue

I am using useChat 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.toUIMessageStreamResponse({
  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,
});