Skip to content

[Bug]: reopening a project recorded without camera and microphone crashes (Windows 11) #348

Description

@EtienneLescot

Reported privately by a user, reproduced on their machine, not reproduced here yet. Filing it because the path it touches has already produced one bug, and because a project that will not reopen is the worst class of failure this app has.

What they described

Suis arrivé à faire planter openscreen: si tu enregistres sans activer la cam ni le micro, et que tu rouvres le projet, ça plante chez moi.

  • Windows 11
  • version reported as "1.18", which does not exist. Most likely 1.8.0; to be confirmed
  • record with no camera and no microphone, close, reopen the project, crash

What is missing, and worth asking for

  • the exact version from Help / About
  • what "plante" looks like: the window disappears, or an error is shown, or it hangs on a blank editor
  • whether the project reopens after a restart, or fails every time
  • whether the same recording with the camera enabled reopens fine, which would isolate the variable

Why this is plausible rather than surprising

The "project with no camera track" path already produced #265 (Export uses the screen recording as the webcam when a project has no camera track). Same family: code that assumes a camera asset exists and falls back to the screen recording when it does not.

That fallback shape is still visible in the editor and CLI export paths:

webcamPath: cam?.sourcePath ?? asset.originalPath,

ExportDialog.tsx:79 and CliExportRunner.tsx:91. Whether that is the same defect #265 fixed or a surviving instance of it needs checking rather than assuming, but it is the first place to look.

NativeCompositorOverlay.tsx handles the empty case differently again:

const webcamPath = cam && cam.visible && cam.sourcePath ? cam.sourcePath : "";

So there are at least two conventions in the codebase for "this project has no camera": an empty string in one place and a substituted screen recording in another. A reopen path that expects one and receives the other is a credible crash.

Microphone absence should be checked as its own variable. The report has both disabled at once, so it is not yet known whether either alone is enough.

Why it matters more than its frequency suggests

Recording without a camera is not an edge case, it is the default for anyone capturing a screen demo. And the failure lands at reopen, which means the recording exists on disk and the user cannot get to it. Even if the crash is trivial to fix, that combination deserves a regression test that creates a camera-less, microphone-less project and reopens it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingstatus: fixed in mainWork is merged into main but may not be in a downloadable release yet.status: pending releaseMerged change is waiting for a packaged desktop release.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions