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.