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 | ✓ | No |
| 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)

