[Bug]: Preview recordings contain uniform empty frames
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 23k
- Forks
- 5.9k
- Avg merge
- 11h 14m
- Merged PRs (30d)
- 357
Description
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/server
Steps to reproduce
- Open a collaborative browser preview on a non-uniform page.
- Capture a snapshot and confirm that it contains the page.
- Start a preview recording, interact with the page, then stop the recording.
- Decode frames from the saved MP4 with FFmpeg or play it in a standard player.
- Repeat with a fresh preview session.
Three recordings from isolated handoff proofs reproduced the same empty frame data. A representative artifact is H.264 Constrained Baseline, yuv420p, 3504 by 1972, 267.04 seconds, and only 104,066 bytes.
Expected behavior
A recording of a non-uniform page contains the visible page. At least one decoded frame is non-uniform and matches a snapshot from the same preview tab.
Actual behavior
The matching preview snapshots contain the page, but the MP4 frames contain no page content. Playback appears as a uniform green or black image depending on the decoder. FFmpeg signal statistics at one second reported YAVG=0, with U and V also near zero.
The recording defect reproduced in three separate MP4 files, so it is not one damaged playback attempt. A more recent attempt also timed out while starting the recorder, and stopping it then failed. That may be a second failure mode in the same recording pipeline.
Impact
Major degradation or frequent failure
The live preview and snapshots remain usable, but recordings cannot serve as replayable validation evidence.
Version or commit
T3 Code build used by t3.code on 2026-08-25 and 2026-08-31; exact commit unknown
Environment
Arch Linux host, T3 collaborative browser preview, H.264 MP4 output, FFmpeg external decoder
Logs or stack traces
codec: H.264 Constrained Baseline
pixel format: yuv420p
dimensions: 3504x1972
duration: 267.04 s
file size: 104066 bytes
frame at 1 s: YAVG=0; no page content
Workaround
Use preview snapshots. They show the expected page but do not provide replayable interaction evidence.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by inspecting the recording pipeline under apps/server and reproduce the issue using the listed preview, snapshot, and MP4 steps. Use FFmpeg to compare decoded frames with the matching snapshots and investigate the recorder-start timeout separately. Done means recordings contain non-uniform page content and stopping the recorder succeeds reliably.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100