Bug tracking for Astro — session replay, console + HAR (2026)
Astro bug-reporting guide for QA + dev teams: framework-specific gotchas, common bugs, and how to capture them with BugMojo session replay.
What Astro teams ship with BugMojo
Astro's pitch is "ship zero JavaScript by default" — but the bugs your team will hit are not in the static HTML, they're at the **island boundaries**. A `<MyButton client:visible />` hydrates only when scrolled into view; a `<MyForm client:load />` hydrates on every page. Picking the wrong directive turns a 0-KB page into a 200-KB page, or a fast page into a janky one.
A useful Astro bug report needs the page route (static, server, hybrid?), the island component name + client directive, and what the user saw before AND after hydration. BugMojo captures both halves — the server-rendered HTML and the client takeover — in the same replay.
This guide covers Astro island hydration gotchas, view transitions bugs (Astro's native router), and the recommended BugMojo capture workflow for Astro teams in 2026.
Astro gotchas
Framework-specific failure modes engineers actually ship through. Each is hard to spot in a screenshot and obvious in a session replay.
Common Astro bugs
Real Astro bug patterns — the symptom you will see in a report and the fix that actually works.
Island state resets on navigation with view transitions
Symptom: A persistent header with a search input loses its value when navigating between pages.
Fix: Add `transition:persist` on the element AND on the framework wrapper. View transitions only persist marked elements.
<SearchInput client:load transition:persist="search" />Environment variables undefined in client islands
Symptom: `import.meta.env.MY_KEY` is undefined when called from a hydrated island.
Fix: Astro env vars are scoped by prefix — `PUBLIC_*` are exposed to client, everything else is server-only. Rename to `PUBLIC_MY_KEY`.
Markdown component imports work in .md but not in .mdx
Symptom: `import` at the top of an MDX file fails to resolve.
Fix: MDX in Astro requires `@astrojs/mdx` integration AND component imports must be inside the frontmatter, not at the top of the file body.
Setup
# Install BugMojo from the Chrome Web Store — works on every Astro adapterBugMojo vs alternatives
The honest comparison — where BugMojo wins, and where another tool might serve you better.
| Feature | BugMojo | View source / browser DevTools |
|---|---|---|
| See the pre-hydration HTML the user got | ✅ | ✅ view source |
| See the post-hydration DOM | ✅ | ✅ DevTools |
| See the moment hydration happened | ✅ replay | ❌ |
| Capture islands' client console errors | ✅ | ✅ live only |
| Shareable replay link | ✅ | ❌ |
| MCP integration for AI coding agents | ✓ | — |
| Zero-setup Quick Capture | No project, no SDK | Account / SDK required |
BugMojo records the DOM, console, and network — then ships a one-click ticket with the full replay attached. No SDK, no setup.
Try BugMojo freeFrequently asked questions
Frequently asked questions
Sources
- Astro client directives reference — docs.astro.build (2025)

