Volt v0.1 · TypeScript APIs on Bun · Get started
Docs/Getting Started/Troubleshooting

Troubleshooting

Resolve common setup, body parsing, plugin, and documentation problems.

Server will not start

Check bun --version, install dependencies in the application directory, and confirm index.ts exists. If port 3000 is occupied, stop the old process or choose a new port. Native app.listen requires Bun; use the Node adapter for Node.

Body is empty or validation fails

Send Content-Type: application/json with JSON requests. Use the order (path, handler, schema) and Volt t schemas. Numeric constraints use min/max. POST/PUT/PATCH bodies are automatically parsed; do not read the same Request stream a second time. A malformed JSON body can currently fall back to an empty object; require the fields your handler needs.

Header helper is missing

Use c.setHeader(name, value), c.getHeader(name), or c.headers.get(name). c.header() is not a VoltContext method. Return the response from middleware after awaiting next().

Database returns no rows or model types are missing

PostgreSQL and Redis plugin defaults are mock or memory implementations. Inject an initialized real driver. For Prisma, run generate with the exact application schema before typechecking imports such as User or Product. Migration and queries require a reachable database.

Docs code displays as text

Fenced examples need matching triple-backtick delimiters and a language label. The docs renderer preserves blank lines in fenced blocks and renders internal links and table cells. If editing a content string in TypeScript, use an escaped or JSON-encoded string rather than unescaped template backticks.

Unexpected cross-request state

c.store is application-level shared state. Keep authenticated users and request-specific data in local variables. Plugins that inject context-bound helpers need care across awaited work. See Context and Authentication.