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
changed the title [-]Windows: replay daemon can terminate during `usage` / `passes` with WinError 10054[/-][+]Windows: intermittent RPC connection resets (WinError 10054) while replay daemon remains alive[/+]on Oct 9, 2026
Could you share the exact command sequence or a small script that triggers the reset, along with your rdc-cli commit/version and RenderDoc version? Please also include the full error output, how often it happens, and whether commands are run sequentially or concurrently.
Thanks — I was able to recover a much smaller historical reproducer.
Environment:
rdc-cli: 0.6.3
RenderDoc: 1.46
Commands were run sequentially, not concurrently.
The smallest case I found contains only a single PickPixel call:
```python
controller.SetFrameEvent(9622, True)
res_id = None
for t in controller.GetTextures():
if int(t.resourceId) == 1553:
res_id = t.resourceId
break
sub = rd.Subresource()
sub.mip = 0
sub.slice = 0
sub.sample = 0
pix = controller.PickPixel(
res_id,
616,
609,
sub,
rd.CompType.Typeless,
)
print("PixelValue props:", [
p for p in dir(pix)
if not p.startswith("_")
])
print(
"pix.floatValue:",
[round(x, 4) for x in pix.floatValue],
)
The sequence was:
Start/connect to an rdc-cli replay session.
Run the script above against an already-open capture.
In this recovered case, the request failed with:
daemon unreachable: [WinError 10054] An existing connection was forcibly closed by the remote host
Subsequent requests to the same session also returned WinError 10054 in that recovered sequence.
There was one harmless error immediately before this test while I was correcting the script:
TypeError: in method 'new_ResourceId', argument 1 of type 'ResourceId const &'
After fixing that ResourceId handling, the first recovered run containing the actual PickPixel call was immediately followed by the connection reset.
An important correction to my earlier observations: I initially suspected that the problem correlated mainly with hundreds of PickPixel calls. That is not required. I have now recovered a case where a script containing only one PickPixel call is followed immediately by WinError 10054.
The failure is intermittent, though, so I do not yet have a 100% deterministic reproducer.
I also recovered a separate case where a normal descriptor query produced the same WinError 10054, but the replay session itself remained alive afterward and successfully served later binding/shader queries. Because of that, at least some occurrences appear to be an RPC connection reset rather than a full replay-daemon process termination.
I am preparing a fresh controlled run where I will:
launch the daemon with stdout/stderr redirected to files,
connect a clean session,
execute the one-PickPixel reproducer once,
capture both client output and daemon logs.
If it reproduces again, I will attach those logs here. If it does not, I will report that as well since it would further confirm the intermittent nature of the issue.
Hi @doc-haz, have you had a chance to run the controlled repro? I've opened draft #279 with persistent RPC diagnostics.
If you're able to test that branch, set RDC_DAEMON_LOG before opening a fresh session, run the one-PickPixel script once, then check status. Please share the client output and the log plus its .stderr companion; the setup instructions include a PowerShell example. A run where it doesn't reproduce would also be useful.
Activity
[-]Windows: replay daemon can terminate during `usage` / `passes` with WinError 10054[/-][+]Windows: intermittent RPC connection resets (WinError 10054) while replay daemon remains alive[/+]BANANASJIM commentedon Oct 10, 2026
Could you share the exact command sequence or a small script that triggers the reset, along with your rdc-cli commit/version and RenderDoc version? Please also include the full error output, how often it happens, and whether commands are run sequentially or concurrently.
doc-haz commentedon Oct 11, 2026
Thanks — I was able to recover a much smaller historical reproducer.
Environment:
The smallest case I found contains only a single PickPixel call:
The sequence was:
daemon unreachable: [WinError 10054] An existing connection was forcibly closed by the remote host
There was one harmless error immediately before this test while I was correcting the script:
TypeError: in method 'new_ResourceId', argument 1 of type 'ResourceId const &'
After fixing that ResourceId handling, the first recovered run containing the actual PickPixel call was immediately followed by the connection reset.
An important correction to my earlier observations: I initially suspected that the problem correlated mainly with hundreds of PickPixel calls. That is not required. I have now recovered a case where a script containing only one PickPixel call is followed immediately by WinError 10054.
The failure is intermittent, though, so I do not yet have a 100% deterministic reproducer.
I also recovered a separate case where a normal descriptor query produced the same WinError 10054, but the replay session itself remained alive afterward and successfully served later binding/shader queries. Because of that, at least some occurrences appear to be an RPC connection reset rather than a full replay-daemon process termination.
I am preparing a fresh controlled run where I will:
If it reproduces again, I will attach those logs here. If it does not, I will report that as well since it would further confirm the intermittent nature of the issue.
BANANASJIM commentedon Oct 20, 2026
Hi @doc-haz, have you had a chance to run the controlled repro? I've opened draft #279 with persistent RPC diagnostics.
If you're able to test that branch, set
RDC_DAEMON_LOGbefore opening a fresh session, run the one-PickPixel script once, then checkstatus. Please share the client output and the log plus its.stderrcompanion; the setup instructions include a PowerShell example. A run where it doesn't reproduce would also be useful.