BugMojoBugMojoBugMojo
FeaturesPricingBlogGuidesAbout
Log inGet started
BugMojoBugMojo

Bug reports that actually help fix bugs — capture, replay, share.

A product of Softech Infra.

Product

  • Features
  • Pricing
  • Get started
  • Log in

Resources

  • Blog
  • Guides
  • Compare
  • Glossary

Company

  • About
  • Contact
  • Privacy
  • Sitemap
  • Engineering
  • Playbooks
© 2026 BugMojo. All rights reserved.
AllGuidesEngineeringPlaybooksCompareGlossaryAlternativesBy roleBug tracking by framework
  1. Home
  2. Blog
  3. Bug tracking by framework
  4. Flutter
Bug tracking by framework

Bug tracking for Flutter — session replay, console + HAR (2026)

Capture and reproduce Flutter Web bugs: CanvasKit canvas vs the semantics DOM tree, console and network capture, readable stack traces, and an MCP repro workflow for AI agents.

2 min read·Mobile / Flutter Web
Isometric line-art of a Flutter Web app painting to a single canvas with console and network signals routed to a bug report

What Flutter teams ship with BugMojo

Flutter Web is a different beast for bug capture than React or Vue. Under the default CanvasKit renderer your entire app paints to a single HTML canvas element, so a DOM session replay records one opaque node instead of the widget tree, and the visual detail a tool like rrweb relies on is simply not in the DOM.

That does not make Flutter Web undebuggable; it shifts where the signal lives. Console output from print, framework assertions, and FlutterError.onError, plus every Dio or http request in the network tab, are all still capturable from the browser. This guide covers what a capture tool can and cannot reconstruct for a Flutter Web bug, and how to file a report an engineer can actually act on.

Flutter gotchas

Framework-specific failure modes engineers actually ship through. Each is hard to spot in a screenshot and obvious in a session replay.

CanvasKit renders to a single canvas

With the default CanvasKit renderer the whole UI is painted to one canvas element, so a DOM session replay captures the canvas rather than the widget tree and visual diffs are limited. Enable the semantics tree or attach a screen recording for visual context.

Turn on the semantics tree for DOM signal

Flutter Web exposes an accessibility semantics DOM tree when assistive tech is detected, or when you force it on. Enabling it gives a replay tool real DOM nodes to record, which meaningfully improves what a session replay can show for a Flutter Web bug.

print() is not your error channel

Casual print statements are noisy or stripped in release builds. Route real failures through FlutterError.onError and PlatformDispatcher.onError so they reach the browser console where a capture tool can record them with a usable stack trace.

Ship source maps for readable traces

dart2js output is minified, so a raw console stack trace is unreadable. Generate and retain source maps during the build so the captured trace maps back to your Dart code instead of mangled symbols.

BugMojo vs alternatives

The honest comparison — where BugMojo wins, and where another tool might serve you better.

FeatureBugMojoGeneric screenshot tool
Console + framework error captureCaptured automaticallyManual copy-paste
Network / API request captureFull request + responseNone
DOM replay under CanvasKitLimited (canvas) — enable semanticsNone
MCP: AI agent reads the captured reproYes — unique to BugMojoNo
Client-side PII redactionIn the browser pre-uploadNo
Zero-setup Quick CaptureNo project, no SDKAccount / SDK required
The BugMojo column is highlighted. The closing rows are BugMojo’s core wedge: rrweb session replay, MCP for AI agents, console + network capture, and zero-setup Quick Capture.
Capture your next bug in 15 seconds

BugMojo records the DOM, console, and network — then ships a one-click ticket with the full replay attached. No SDK, no setup.

Try BugMojo free

Frequently asked questions

Frequently asked questions

Sources

  1. Web renderers (CanvasKit and HTML) — Flutter
  2. Handling errors in Flutter — Flutter
Share:

More frameworks

Pick another — each guide has its own gotchas, comparison, and fixes.

React 19
JavaScript
Next.js 15
JavaScript
Vue 3.5
JavaScript
WordPress
PHP / CMS
Angular 19
TypeScript
SvelteKit 2 (Svelte 5)
JavaScript

On this page

  • What Flutter teams ship with BugMojo
  • Flutter gotchas
  • BugMojo vs alternatives