> ## Documentation Index
> Fetch the complete documentation index at: https://bun-1dd33a4e-farm-c9035eb1-hot-recreated-import-unwatched.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Error Handling

> Learn how to handle errors in Bun's development server

To activate development mode, set `development: true`.

```ts title="server.ts" icon="https://mintcdn.com/bun-1dd33a4e-farm-c9035eb1-hot-recreated-import-unwatched/iQiNa3eN_F6jOmGF/icons/typescript.svg?fit=max&auto=format&n=iQiNa3eN_F6jOmGF&q=85&s=b265dc4db2a5a76a3228f58794d844bf" theme={null}
Bun.serve({
  development: true, // [!code ++]
  fetch(req) {
    throw new Error("woops!");
  },
});
```

In development mode, Bun will surface errors in-browser with a built-in error page.

<Frame>
  <img src="https://mintcdn.com/bun-1dd33a4e-farm-c9035eb1-hot-recreated-import-unwatched/iQiNa3eN_F6jOmGF/images/exception_page.png?fit=max&auto=format&n=iQiNa3eN_F6jOmGF&q=85&s=e277da8eabe0f8d77d67384cfd0d8557" alt="Bun's built-in 500 page" width="800" height="579" data-path="images/exception_page.png" />
</Frame>

### `error` callback

To handle server-side errors, implement an `error` handler. This function should return a `Response` to serve to the client when an error occurs. This response will supersede Bun's default error page in `development` mode.

```ts theme={null}
Bun.serve({
  fetch(req) {
    throw new Error("woops!");
  },
  error(error) {
    return new Response(`<pre>${error}\n${error.stack}</pre>`, {
      headers: {
        "Content-Type": "text/html",
      },
    });
  },
});
```

<Info>[Learn more about debugging in Bun](/runtime/debugger)</Info>
