Runtime
Bundler
Package Manager
Test Runner
Guides
Reference
Blog
Install Bun
Runtime HTTP Server

Error Handling

Learn how to handle errors in Bun's development server

To activate development mode, set development: true.

server.ts
Bun.serve({
  development: true, 
  fetch(req) {
    throw new Error("woops!");
  },
});

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

Bun's built-in 500 page

error callback

To handle server-side errors, implement an error handler. Return a Response to serve to the client when an error occurs. In development mode, this response replaces Bun's default error page.

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