You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: timed out waiting for native windows capture to stop. Record could not save #292
Being straight about it: nobody has reproduced this on hardware we control, so it is not proven to fix your case. What the build does add is a way to answer the leading hypothesis without guesswork — it now reports which GPU the capture device landed on versus which one drives the display being captured, and a failed stop names the exact call each thread was inside.
If you hit it again on rc.2, the details and what to attach are in #252 (comment) — a couple of lines from the log settle more than a description can.
Would you want me to assist you in recreating the bug as it's happening on my laptop as well on v1.9.2.
I don't understand why op didn't add any version or information regarding his system. but mine is running on win10 the bug happens when trying to record anything since i installed this fork over the old repo.
Following on from my question above, @arfizato — so that whatever the answer is, it arrives with something we can read.
You offered on 13 Aug to help reproduce this. That offer is still the useful thing here: every machine we can test on is Windows 11 with integrated graphics, every reporter on this bug is on Windows 10, and we have never once observed the failure on hardware we control.
Please install v1.10.0 fresh rather than over the top. Your own message says you installed "this fork over the old repo", and that is worth removing from the picture before anything else: uninstall first, then install v1.10.0. An install layered over a previous one can leave files from both versions side by side, and I would rather not spend a week reading a trace that turns out to be about that.
Then, if it still fails:
Record briefly, hit stop, get the Timed out waiting for native Windows capture to stop toast.
Before starting another recording — a new one clears the buffer — right-click the OpenScreen tray icon and pick Save Diagnostics (next to About; it works without opening a window, which is the state you are in right after a failed stop). Also available in Settings → Support.
Attach the openscreen-diagnostic-<number>.json it writes.
And one line that costs you nothing either way, because we still do not know it for your machine:
Same failure, same trace signature: wgc-quiesce at drained=false, video-writer-join at phase=abandoned. @nickcollinsdotco's export above named the mechanism, reason=frame-callback-stuck, and that is what #306 removes. It shipped yesterday in v1.11.0.
Closing this so there is one thread rather than three. Nothing here is considered fixed — the request to test v1.11.0 and what to attach if it still fails is in #252, and that is where a reply is most useful.
Activity
LuniteLang-Sys commentedon Aug 10, 2026
when i update still bug
EtienneLescot commentedon Aug 10, 2026
There is a release candidate with a first attempt at this: https://github.com/getopenscreen/openscreen/releases/tag/v1.9.4-rc.2
Being straight about it: nobody has reproduced this on hardware we control, so it is not proven to fix your case. What the build does add is a way to answer the leading hypothesis without guesswork — it now reports which GPU the capture device landed on versus which one drives the display being captured, and a failed stop names the exact call each thread was inside.
If you hit it again on rc.2, the details and what to attach are in #252 (comment) — a couple of lines from the log settle more than a description can.
fix(recording): write fragmented MP4 so a killed helper keeps its file
fix(recording): write fragmented MP4 so a killed helper keeps its file
arfizato commentedon Aug 13, 2026
Would you want me to assist you in recreating the bug as it's happening on my laptop as well on v1.9.2.
I don't understand why op didn't add any version or information regarding his system. but mine is running on win10 the bug happens when trying to record anything since i installed this fork over the old repo.
I'll install rc2 and let you know if it worked
fix(recording): open the recording a failed stop left playable
fix(recording): open the recording a failed stop left playable
EtienneLescot commentedon Aug 29, 2026
@arfizato Sorry for the delay, first of all, do you still have the issue on 1.10.0 ?
EtienneLescot commentedon Aug 29, 2026
Following on from my question above, @arfizato — so that whatever the answer is, it arrives with something we can read.
You offered on 13 Aug to help reproduce this. That offer is still the useful thing here: every machine we can test on is Windows 11 with integrated graphics, every reporter on this bug is on Windows 10, and we have never once observed the failure on hardware we control.
Please install v1.10.0 fresh rather than over the top. Your own message says you installed "this fork over the old repo", and that is worth removing from the picture before anything else: uninstall first, then install v1.10.0. An install layered over a previous one can leave files from both versions side by side, and I would rather not spend a week reading a trace that turns out to be about that.
Then, if it still fails:
Timed out waiting for native Windows capture to stoptoast.openscreen-diagnostic-<number>.jsonit writes.And one line that costs you nothing either way, because we still do not know it for your machine:
If it turns out v1.10.0 records and saves fine on your laptop, say that too — it is not a wasted answer, it closes this issue.
nickcollinsdotco commentedon Sep 7, 2026
Getting the same error on Windows 10, first-time install of v1.10.0
{ "timestamp": "2026-09-07T00:22:34.378Z", "appVersion": "1.10.0", "platform": "win32", "arch": "x64", "channel": "nsis", "osRelease": "10.0.19045", "osVersion": "Windows 10 Home", "totalMemoryMB": 31850, "nodeVersion": "24.14.1", "electronVersion": "41.2.1", "chromeVersion": "146.0.7680.188", "error": "Manual diagnostic export", "projectState": null, "recentLogs": [], "helperOutput": { "windows": "{\"event\":\"ready\",\"schemaVersion\":2}\r\n{\"event\":\"cursor-capture\",\"schemaVersion\":2,\"requested\":false,\"applied\":false}\r\n{\"event\":\"capture-adapter\",\"schemaVersion\":2,\"deviceAdapter\":\"NVIDIA GeForce RTX 5070 Ti\",\"deviceLuid\":\"0:62786\",\"monitorAdapter\":\"NVIDIA GeForce RTX 5070 Ti\",\"monitorLuid\":\"0:62786\",\"monitorLookup\":\"ok\",\"sameAdapter\":true}\r\n[adapters] 0 luid=0:62786 \"NVIDIA GeForce RTX 5070 Ti\" outputs=\\\\.\\DISPLAY2(captured),\\\\.\\DISPLAY1\r\n[adapters] 1 luid=0:73684 \"AMD Radeon(TM) Graphics\" outputs=none\r\n[adapters] 2 luid=0:73629 \"Microsoft Basic Render Driver\" outputs=none\r\nINFO: Fragmented MP4 sink carries video on stream index 0 (identifier 1).\r\n{\"event\":\"encoder-selection\",\"schemaVersion\":2,\"video\":\"default\",\"videoInput\":\"cpu-rgb32\",\"container\":\"fragmented-mp4\",\"preferSoftwareEncoder\":false,\"videoEncoderRuntime\":\"hardware\"}\r\n{\"event\":\"cursor-capture\",\"schemaVersion\":2,\"requested\":false,\"applied\":false}\r\n{\"event\":\"recording-started\",\"schemaVersion\":2}\r\nRecording started\r\n[stop-timing] step=command-received elapsed_ms=0\r\n[stop-timing] step=wgc-quiesce elapsed_ms=0 phase=begin\r\nWARNING: A WGC frame callback did not finish; leaving the device alive\r\n[stop-timing] step=wgc-quiesce elapsed_ms=5014 drained=false\r\n[stop-timing] step=microphone elapsed_ms=5014 phase=begin\r\n[stop-timing] step=microphone elapsed_ms=5014\r\n[stop-timing] step=loopback elapsed_ms=5014 phase=begin\r\n[stop-timing] step=loopback elapsed_ms=5014\r\n[stop-timing] step=webcam elapsed_ms=5014 phase=begin\r\n[stop-timing] step=webcam elapsed_ms=5014\r\n[stop-timing] step=audio-mixer elapsed_ms=5014 phase=begin\r\n[stop-timing] step=audio-mixer elapsed_ms=5014\r\n[stop-timing] step=video-writer-join elapsed_ms=5014 phase=begin\r\n[stop-timing] step=video-writer-join elapsed_ms=5014 phase=abandoned encode_stage=idle audio_stage=idle reason=frame-callback-stuck\r\n{\"event\":\"stop-timeout\",\"schemaVersion\":2,\"step\":\"video-writer-join\"}\r\n", "mac": "" }, "mainProcessLogs": [] }openscreen-diagnostic-1788740548502.json
EtienneLescot commentedon Sep 10, 2026
Duplicate of #252.
Same failure, same trace signature:
wgc-quiesceatdrained=false,video-writer-joinatphase=abandoned. @nickcollinsdotco's export above named the mechanism,reason=frame-callback-stuck, and that is what #306 removes. It shipped yesterday in v1.11.0.Closing this so there is one thread rather than three. Nothing here is considered fixed — the request to test v1.11.0 and what to attach if it still fails is in #252, and that is where a reply is most useful.
Thanks @LuniteLang-Sys, @arfizato and @nickcollinsdotco. The diagnostic export is what turned this from a description into a mechanism.