A bug report with a 20-second screen recording closes in roughly half the time of a bug report with only text. We pulled this number from 18 months of triage data in our own repo and it tracks with what every developer-survey since 2022 has reported. The catch is that most bug-report videos are awful — 90 seconds of someone trying to remember where the bug was, no console open, file ten times bigger than it needs to be, and a thumbnail screen of someone's vacation desktop. This post is the workflow we actually use, the things we record without thinking about anymore, and the small set of habits that turn a recording into a triage primitive.
TL;DR — the seven-second discipline
Before you hit record:
- Reproduce the bug once with no recording, so you know the path.
- Open DevTools to the Console tab (or Network, if it's a fetch bug).
- Pick the screen / tab / window — never full screen if you have anything sensitive open.
- Plan the seven seconds of the actual bug — three before, the trigger, three after.
- Record. Stop. Trim to the seven seconds. Export MP4. Attach.
- Paste the console error text into the issue body — videos are for context, text is for grep.
- Resist the urge to narrate. Async readers will read the body; the video is for the visual proof.
The whole loop should take ~90 seconds for a single bug. If it's taking longer, you're treating the recording like a documentary instead of a Polaroid. The rest of this post is the why behind each of those seven steps.
Why video bug reports work
The reason a video closes a ticket faster than text isn't mysterious. It's that a screen recording answers the four questions every triaging developer asks, simultaneously and unambiguously:
- What did you click? The cursor is right there.
- What happened? The UI state is on the screen.
- What was expected? Visible in the seconds before the trigger.
- Is this reproducible? A recording is, by definition, a reproduction.
A text-only bug report has to encode all four into prose, and prose is where the ambiguity creeps in. "I clicked the button" — which button, which page, which build, what was in the URL, was anything else open. A 7-second video removes 80% of the back-and-forth that consumes the first day of a P2 ticket.
The argument against video — that videos are heavy, hard to grep, and bad for accessibility — is real but solvable. Heavy is fixed by exporting at a sane bitrate (more on this below; we ship a 20-second 1080p MP4 at 280 KB). Hard to grep is fixed by also pasting the error text in the issue body. Accessibility is fixed by writing a one-line description above the video. None of those are reasons to skip the video; they're reasons to ship it competently.
What to capture (and what not to)
The best bug-report videos are short, narrow, and almost boring to watch. Here's the breakdown.
Capture this
- The page or app, with the URL bar visible. Half of bug triage is "which build is this against" and the URL bar usually answers that. If you're on a staging environment, the deploy hash is in the subdomain. Don't crop it out.
- DevTools Console, side-by-side with the page. If the bug throws an error, the stack trace shows up in the video at the same instant the UI breaks — visible co-occurrence is one of the strongest signals a triaging engineer can get.
- Network tab if it's a fetch / XHR bug. The request/response and timing are right there.
- The cursor. ClearRec captures the OS cursor by default; some other extensions don't, and it makes a huge difference when the bug is "which button did you click".
- The seconds before the bug. Three seconds of "here's the normal state" makes the diff obvious. Without it, the reviewer can't tell whether the broken state is a regression or just unfamiliar UI.
Don't capture
- Your full desktop, with your email client, your Notion, your Spotify, and your other tabs all visible. Pick the Chrome Tab or Window mode, not Screen. Privacy aside, the file size doubles and the reviewer has to mentally crop every frame.
- Your face, unless the bug is genuinely about webcam or A/V hardware. The webcam overlay adds 5-15% to the file size and adds zero diagnostic value to a UI bug.
- A long preamble explaining what you were trying to do. Put that in the issue title and body. The video should start on the relevant page.
- Audio narration, in 95% of cases. We'll cover the exceptions in the next section, but the default is silent. Audio doubles the file size and means the reviewer can't watch with headphones off in an open office.
- A 60-second "let me find it" exploration. If you can't remember where the bug was, hit Stop, find it, and re-record. Recording while you remember is a courtesy fail.
The "should it have audio?" rule
Default to silent. Add audio when:
- The bug is an audio bug (mute button broken, autoplay misfiring, AAC bitstream issue).
- You're describing an intermittent bug where the timing matters and you need to flag "wait, watch the next second".
- You're recording a UX bug where your live reaction (frustration, confusion) is itself the report — rare, but real.
Otherwise, mute the microphone in the recorder UI before you start. ClearRec defaults the microphone to off for screen captures specifically because the silent-by-default flow is what teams actually want.
The five capture targets, and when to use each
Every screen recorder gives you a choice of what to capture. The choice matters more than people think.
| Capture target | When it's the right call | Why |
|---|---|---|
| Chrome Tab | Web-app bugs (Gmail-style), single-tab reproductions | Smallest file, no other tabs visible, includes the URL bar. |
| Window | Multi-tab flows in Chrome, popouts, DevTools detached panel | Captures one app cleanly; doesn't leak other apps. |
| Screen | Cross-app bugs (Chrome ↔ native app, drag-and-drop between apps) | The only option when the bug spans Chrome and something else. |
| Webcam-only | Webcam + permissions bugs | Captures the camera stream; useful only when the camera is the subject. |
| Screen + Cam (PiP) | Pair-programming reviews, walk-throughs intended for stakeholders | A bug-report video almost never needs this; a demo video sometimes does. |
For 80% of bug reports, Chrome Tab is the right answer. It's the smallest file, it forces you to be on the page where the bug lives, and it captures the URL bar so the triager knows which build they're looking at. Reach for Window when the bug involves multiple tabs (e.g., the message broke between two open tabs of your app). Reach for Screen only when the bug genuinely spans applications.
File-size targets that don't bounce
A bug-report video that exceeds the attachment limit of your tracker is a video that didn't happen. Here are the limits to know in 2026:
| Tracker | Per-attachment limit | Practical target |
|---|---|---|
| GitHub issues / PRs | 10 MB (video uploads) | Under 5 MB |
| Linear | 100 MB | Under 25 MB |
| Jira (Cloud) | 10 MB by default | Under 5 MB |
| Slack | 50 GB workspace cap, 5 GB per file | Under 25 MB for inline preview |
| Discord (free) | 10 MB per file | Under 8 MB |
| Email (Gmail) | 25 MB | Under 10 MB |
| Notion | 5 MB free, 5 GB paid | Under 5 MB |
The "practical target" column is what we aim for — it leaves headroom for the tracker's own metadata and avoids the "exactly at the limit, won't upload" error that some platforms throw. For a typical UI bug, that means a 20-second clip at 1080p, in MP4, which lands at roughly 2-4 MB on ClearRec's Medium tier (1080p / 30 fps / 5 Mbps).
If you're consistently going over the limit:
- Trim more aggressively. 60% of bug-report videos can be cut in half without losing context.
- Drop from 60 fps to 30 fps. Halves the file size; for UI bugs, the perceptual difference is zero.
- Drop from 4K to 1440p or 1080p. If the bug doesn't depend on pixel-perfect rendering, the lower resolution is fine.
- Stay in MP4. Don't switch to GIF "to be safe" — a GIF is ~15× the size of the equivalent MP4. (We did the math in our MP4 vs WebM vs GIF post.)
The exact workflow, step by step
We've found this is the version that scales without becoming ceremony. Here's the whole thing, with timing.
1. Reproduce the bug without recording (≈30 seconds)
Open the page. Click the thing. Hit the bug. Note the URL. Refresh. Hit it again to confirm it's reproducible.
This is the step everyone wants to skip and shouldn't. A recording made on the first attempt almost always includes a 20-second exploration where you re-find the bug. Doing one silent dry-run means your real recording is tight from frame one.
2. Open DevTools — Console for errors, Network for fetch bugs (≈5 seconds)
Ctrl + Shift + J (Windows / Linux) or Cmd + Option + J (Mac). Position it on the right or bottom of the window. If the bug is a network failure, switch to the Network tab and check "Preserve log" so the relevant request doesn't disappear when you refresh.
3. Launch ClearRec → Chrome Tab → 1080p Medium (≈3 seconds)
Click the ClearRec icon. Pick Chrome Tab. Select the tab. Pick Medium (1080p / 30 fps / 5 Mbps) unless the bug needs higher resolution. Click Start Recording.
4. Hit the bug (≈10 seconds)
Wait one breath. Click the thing. Let the bug happen. Wait one more breath so the broken state is unambiguous on screen.
5. Stop. Trim. Export (≈30 seconds)
Click Stop. The trim editor opens in a new tab. Drag the in/out handles to keep only the "before, trigger, after" window — usually 7-15 seconds. Use [ and ] to nudge frame-by-frame.
Click Export MP4. The clip lands in your Downloads folder.
6. Open the bug tracker, attach the video, paste the error text (≈30 seconds)
Drag the MP4 onto the issue body or comment. While it uploads, paste the console stack trace as a code block. Write one line above the video describing what to watch for: "At 0:04 the cursor clicks Submit; the network panel shows a 500 from /api/users with no body."
That's the whole loop. Total time: under two minutes for a textbook bug report, faster than the time it takes to write the equivalent text-only description.
What the "perfect" bug-report video looks like
After triaging hundreds of these, a few patterns separate the great ones:
- Starts on the relevant page. Not on a "let me navigate over" screen. The first frame is already the page where the bug lives.
- 15 seconds or shorter. Anything longer is either un-trimmed or genuinely a multi-step bug that needs a separate longer screencast attached as a secondary asset.
- DevTools visible. Console open, errors visible. Network open if it's a fetch bug. The triager can read the trace in the video without you typing it out.
- No mouse-wandering between actions. A clean recording moves the cursor only when something needs to happen. Wandering signals "I'm not sure what to do next".
- Filename describes the bug.
bug-submit-button-500.mp4notscreen-recording-2026-05-26-14-32.mp4. The triager skims a list of attachments — give them a verb and a noun. - Paired with text. The video is the proof; the issue body is the structured report.
Five anti-patterns we see constantly
The mistakes worth naming:
- Recording the full desktop. Now the reviewer is squinting at a tiny browser window in the corner, and your iMessage notifications are in the asset.
- Recording with the microphone on, narrating while you reproduce. Doubles the file size, slows down replay (the reviewer either watches at 2× and misses the audio or watches at 1× and is bored).
- Recording at 4K @ 60fps. Forty megabytes of clip for a 6-second bug. Drop to 1080p Medium; nobody needs 4K to see that the submit button is grey.
- Skipping the trim step. A 90-second recording where the actual bug happens at 0:47. The reviewer skips it.
- Uploading a GIF. Now the 20-second clip is 38 MB, doesn't autoplay inline in Linear, and visibly bands on any text in the recording. MP4 is the right answer in 100% of bug-tracker contexts.
Special cases: intermittent, race-condition, and "works for me" bugs
Some bugs don't surrender on the first recording. Three patterns worth knowing.
Intermittent bugs
If a bug only reproduces 30% of the time, record both states. Two clips: one where it works, one where it doesn't. Same input, different outputs, side by side. That's the most persuasive bug report you can write, because it eliminates the "you must be doing it wrong" reflex.
ClearRec doesn't have a time limit, so leaving it running for five minutes while you try to trigger the bug is a valid strategy. After the bug fires, hit Stop and trim down to the relevant ~10 seconds. Disk space is your only constraint.
Race conditions
Race conditions are where audio narration genuinely helps. Record the screen, narrate "watch the spinner — it should disappear when the request returns, but at 0:08 you'll see it disappear before the response arrives". The narration tells the triager exactly when to look. Without it, they'll skip past the relevant frame.
"Works for me" bugs
The cardinal "works for me" defense is that the reproduction depends on environment. Counter it by recording with chrome://version visible in another tab, or by capturing your browser's user-agent string in the console first. Six seconds of navigator.userAgent at the start of the video pre-empts an entire round-trip.
Toolkit comparison: which extension works for this workflow
We have a full comparison post that scores six extensions on five dimensions; here's the bug-report-specific summary:
| Extension | 5-min cap? | Account? | Inline DevTools cursor capture | File lands locally? |
|---|---|---|---|---|
| ClearRec | No | No | Yes | Yes (MP4) |
| Awesome Screen Recorder | 10 min cap | No | Yes | Yes |
| Loom | 5 min cap | Required | Yes | Cloud URL only |
| Screencastify | 5 min cap | Required | Yes | Drive by default |
| Vidyard | 60 min cap | Required | Yes | Cloud URL only |
| Nimbus Screen Video | 2 min cap | Optional | Yes | Limited |
For bug-report videos, the 5-minute cap is fatal when you're reproducing an intermittent bug. The account wall is fatal when you're on a fresh machine. The cloud-only output is fatal when the bug is on a system where the recording can't leave the building (admin dashboards, healthcare UIs, internal financial tools). ClearRec hits all three: no cap, no account, local file.
That's a deliberate design choice, not luck — the whole privacy model is built around "the recording stays on the laptop where it was made", which happens to be exactly what bug-report workflows need.
Frequently asked questions
Q: How long should a bug-report video be? Aim for 7-15 seconds. Anything longer is usually un-trimmed.
Q: What resolution should I record at? 1080p / 30 fps for almost every UI bug. Drop to 720p only if file size is tight. Step up to 1440p / 60 fps only if the bug depends on rendering detail (a tooltip position, a 1px border, a font-rendering issue).
Q: MP4 or GIF for a GitHub bug-report?
MP4. GitHub renders <video> inline for MP4 uploads in PRs and issue comments since 2023. GIF only wins in README files. (We dug into this.)
Q: Should I record audio? No, unless the bug is audio-related or you need to point at a specific second of a race condition. Default is silent.
Q: Does ClearRec work for QA engineers who need to attach videos to ten tickets a day? Yes — that's exactly the workflow it's designed for. No 5-minute cap (so you can record a full regression sweep), no account (so new contractors can install it and ship a video in 90 seconds), and the MP4 lands in your Downloads folder so you can drag it straight into Jira / Linear / GitHub.
Q: What about screenshots? Do videos always win? No. For a static UI bug (button is the wrong color, text overflow on a label, missing icon), a screenshot is faster to produce, faster to triage, and easier to annotate. Videos win when time is part of the bug: an animation broken, a network request hanging, a race condition firing, an intermittent rendering glitch. If a screenshot would prove the bug, ship the screenshot; if it wouldn't, ship the video.
Q: How do I redact sensitive data from the recording? The cleanest answer is to not record it in the first place. Use a test account, dummy data, or a feature flag that hides the sensitive panel before you start. If you do need to redact, ClearRec's editor has a crop tool that can crop the recording to exclude sensitive regions; for surgical redaction (a specific text block in the middle of the frame), you'll need a desktop editor — but for the vast majority of bug-report videos, switching to test data is faster than post-hoc redaction.
Q: Should I attach the video file or a link to the video? The file. A link points to something that can change (or expire, or require an account to view). A file is immutable, lives next to the issue, and works offline. The "Loom share link" workflow is convenient at the moment of recording and a pain three weeks later when the bug is being re-triaged.
Q: What's the right naming convention for bug-report video filenames?
<area>-<verb>-<symptom>.mp4. Examples: auth-login-redirect-loop.mp4, checkout-submit-500.mp4, editor-paste-strip-formatting.mp4. Reads cleanly in a list, sorts well, and answers "what's in this file" without opening it.
A 90-second template
If you want a starter for the issue body that pairs with the video, here it is:
**Summary**: <one line — what's broken>
**Steps to reproduce**:
1. Go to <url>
2. <action>
3. <action that triggers the bug>
**Expected**: <what should happen>
**Actual**: <what does happen — visible in the attached video>
**Environment**:
- Build: <commit hash from URL or `chrome://version`>
- Browser: <e.g. Chrome 142 on macOS 15.4>
- User: <test account / role>
**Console error**:
```
<paste the stack trace>
```
**Video**: see attached `<area>-<verb>-<symptom>.mp4`
Six fields, one paste of the stack trace, one drag of the MP4. Most reports that fit this template close in one round-trip.
The summary
A great bug-report video isn't a documentary. It's a Polaroid. Seven to fifteen seconds, one tab, one bug, MP4 export, paired with the text body of the ticket and the console error. Ship it locally, ship it small, and ship it without an account wall in the way.
If you want the workflow without the friction, install ClearRec from the Chrome Web Store. Two clicks to record, frame-accurate trim, MP4 in your Downloads folder, no sign-up, no upload, no five-minute cap. The first bug you ship after installing will be the proof.
See also
- The 6 best free Chrome screen recorder extensions (2026 review) — the full scorecard.
- The best free Loom alternative for Chrome (2026) — why local files beat share links for bug reports.
- MP4 vs WebM vs GIF: which screen recording format should you use? — the codec decision tree.
- How to convert a screen recording to GIF in Chrome — for when the bug-report destination is a README, not an issue.
- Quality tiers — the six presets, with bitrate / file-size trade-offs.