Dev Debug Logs
Important: This skill is for local development only. For logs from deployed feature backends, use the remote-logs skill with
fusebase remote-logscommand.
When a feature is run through:
fusebase dev start FEATURE_PATH
the CLI creates a per-session log directory inside the selected feature directory:
<feature-dir>/logs/dev-<timestamp>/
with these files:
browser-logs.jsonlaccess-logs.jsonlbackend-logs.jsonlfrontend-dev-server-logs.jsonl
Use this skill when debugging the local feature runtime. These logs are local development artifacts only.
Which Log File To Read
browser-logs.jsonl
Use for:
console.log/console.erroroutput from the browser- uncaught browser errors
- unhandled promise rejections
- navigation/lifecycle events from the feature page
Important:
- It only works when the feature is opened through the CLI proxy started by
fusebase dev start - The CLI injects a browser debug script into proxied HTML pages automatically
- Records are JSON Lines; each line is one event
Typical fields:
timestamptypelevelmessageargserrorurlpathname
backend-logs.jsonl
Use for:
- backend stdout/stderr captured during
fusebase dev start - runtime errors printed by a feature backend
- startup messages like port binding, env/config issues, and stack traces
Typical fields:
timestampfeatureIdline
Important:
- If the feature defines a dedicated backend dev command, the CLI captures that process directly
- If frontend and backend are started together from one
dev.commandusing tools likeconcurrently, the CLI attempts to capture the backend lane into this file as well - This file is line-based output, not structured request logs
access-logs.jsonl
Use for:
- requests made to
/apithrough the local proxy - request/response headers
- request/response bodies for small JSON/text payloads
- proxy failures between the CLI and the feature/frontend dev server
Typical record types:
requestresponseproxy-error
Important:
- Records include
requestId - The same request ID is also forwarded as
x-fusebase-dev-request-id - Use
requestIdto correlate request and response records for one/apicall - Headers and obvious secrets are redacted before writing
frontend-dev-server-logs.jsonl
Use for:
- frontend dev server stdout/stderr captured during
fusebase dev start - Vite startup errors, port-binding issues, and plugin/build diagnostics printed by the frontend dev server
- frontend-side dev proxy messages emitted by the feature dev server
Typical fields:
timestampfeatureIdline
Important:
- If the feature uses a dedicated backend via
feature.backend.dev.command, this file contains the feature dev server output directly - If frontend and backend are started together from one
dev.commandusing tools likeconcurrently, the CLI attempts to exclude the detected backend lane from this file - This file is line-based output, not structured browser events
How To Use These Logs Together
For frontend/UI issues:
- Start with
browser-logs.jsonl - If the browser error looks related to Vite, module resolution, HMR, or frontend dev proxying, check
frontend-dev-server-logs.jsonl - If the browser error came from a failed
/apicall, inspectaccess-logs.jsonland then checkbackend-logs.jsonlaround the same time if a backend exists
For /api failures seen in the UI:
- Start with
browser-logs.jsonlto confirm the browser-visible symptom - Check
access-logs.jsonlto correlate the request and response or a proxy error - Check
frontend-dev-server-logs.jsonlif the frontend dev server may be failing to proxy or compile - Then inspect
backend-logs.jsonlfor the corresponding backend-side error or startup issue
For backend startup failures:
- Start with
backend-logs.jsonl - Check whether the backend printed startup errors, missing env vars, port conflicts, or stack traces
- If the browser is only showing a generic fetch failure, confirm the browser-visible symptom in
browser-logs.jsonl
Rules
- Use
fusebase dev start; do not bypass the CLI with directnpm run devif you need these logs - Read the latest session directory under the selected feature directory's
logs/dev-<timestamp>/for the current run - Vite watch: Add
server.watch.ignored: ['**/logs/**']to the feature'svite.config.tsso log writes don't trigger HMR reloads (see skill feature-dev-practices) - Treat logs as debug artifacts, not as a source of truth for business data
- Do not assume secrets are fully removed; redaction is best-effort