Builder Guide
The + Debug drawer: see what your page did, safely
Open the built-in diagnostic timeline on any page to see what it did, what failed, and why — without exposing customer data.
Every page in your app — in the builder console and in your live tenant application — carries a collapsed + Debug control fixed to the bottom of the screen. Open it and you get an ordered timeline of the actions that page just took: navigation, form submits, database reads, and any AI calls it triggered, each with an outcome, a duration, and — when something failed — a safe reason and a way to follow it up. It's a diagnostic action timeline, not a browser console, packet inspector, SQL profiler, or unrestricted log viewer.
Why it's there
Most of the time a builder finds out something is wrong from a customer complaint, long after the failure happened and with none of the context that would explain it. The debug drawer closes that gap: it shows you, in the moment, exactly which step of the page failed, how long it took, and a correlation ID that ties it to the same event your team (or BuildWithHQ support) sees on the authoritative Logs side — so you can investigate immediately instead of waiting for a report to work its way back to you.
Opening it
Click + Debug to open it. If the current page already has recorded failures, the collapsed control shows Debug · N errors without exposing any details until you open it. Opening the drawer starts a short-lived, server-issued session scoped to that exact page instance — it isn't a standing background logger, and it can't be extended indefinitely or resumed from another browser session.
Reading the timeline
Filter the timeline by All, Errors, Network, Actions, Database, Workers or AI — which filters are available depends on your role. Each row shows the UTC time, a safe operation name, its outcome, duration, the build/component version that handled it, and its correlation ID. A failed row adds a safe failure code and an Open problem action that takes you straight to the same event on the authoritative app Logs surface, at the same correlation, even if that means signing back in to the Builder Console first.
For example, a page load might show a successful page.definition.load in 84 ms, followed by a reservations.list call that failed after 312 ms with the code reservation_query_failed, and then a retry that succeeded. That's usually enough on its own to tell you whether you're looking at a one-off blip or something worth investigating further — without reading a single line of a stack trace.
Opening a row's expandable diagnostic section shows its sequence position, full occurrence time, event ID, action ID and parent action ID (or an explicit root-action label), so you or a teammate can follow the exact causal chain — which action triggered which — across retries and asynchronous follow-ups.
Closing and reopening problems
Once you've looked into a failure, close it from the drawer. Closing records who closed it and when, and the occurrence count at that moment — it does not delete or hide the underlying evidence. If the same failure happens again afterward, it reopens automatically with a higher occurrence count, so a recurring problem can't quietly stay marked closed while it keeps happening.
Close, Resolve and Dismiss are lifecycle labels, not delete actions. Nothing in the drawer can erase recorded diagnostic history.
What it deliberately never shows you
The drawer is built to be safe to look at — and safe to hand to someone else. It never captures request or response bodies, exception or SQL text, stack locals, URL query strings, headers, cookies, tokens, AI prompts or model output, customer records, secrets, connection strings, or physical database/server names. What you see is limited to identifiers, safe operation and outcome codes, timestamps, durations, versions, and correlation — enough to investigate, never enough to leak a customer's data by accident.
A marketplace publisher only ever sees causally linked events for their own exact published version — never your tenants' identities or content. A platform operator's view is similarly scoped and fully audited. Nobody outside your own app sees your data through this feature.
Exporting for support
Copy a correlation ID directly from any row, or export a sanitized diagnostic bundle for the whole session — the export shows exactly the same safe projection you can already see in the drawer, and every export is itself audited. That's usually all BuildWithHQ support needs to look at the same event on their side without you ever having to describe, screenshot, or paste anything sensitive.
If Logs is temporarily unavailable
A drawer diagnostic outage never changes what the page actually does for your customer — collection failure can only produce a bounded warning, never a different business outcome. If the Logs plane itself is briefly unavailable, the drawer shows an honest diagnostics temporarily unavailable state rather than pretending the timeline is simply empty.
Session limits
Debug sessions expire on their own and are capped on events, rate and size. When a session expires, the drawer keeps the history you already saw, stops capturing new detail, and offers Start new session — which closes the old session and starts a fresh one rather than reviving the expired one.
Closing the drawer only stops the extra successful-action detail it samples while open. Errors are always recorded through the normal failure-observation path, whether the drawer is open or not — you won't miss a real failure by working with it closed.
Still expanding
The drawer already covers page loads, their linked database reads, and AI calls like DataChat Ask across both the builder console and your live tenant pages. Deeper tracing into asynchronous worker and AI-job continuations, and dedicated marketplace-publisher and platform-operator views, are still being extended — so treat the drawer today as the fastest way to see what a page itself just did, with broader coverage arriving over time.
Capability review: 2026-09-14. For exact current technical availability, use the generated API Map and first-class module inventory.