Model streams that never start abort agent rounds at the 5-minute first-data guard with no automatic retry
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Read plugins-repo/src/MeshWeaver.AI/StreamStallGuardChatClient.cs and trace how its exception reaches the [ThreadExec] round loop behind MeshWeaver.AI.AgentChatClient; inspect the sibling issues #5859 and #5819 for related failure shapes. Check provider-side metrics for the aborted call if available. Done means deciding how stream failures should be handled across these cases, such as bounded retries or a readable thread failure; the issue notes this may be folded into #5859.
Written by the indexing model from the issue text.
Description
What is failing
A streaming model call in an agent round ([ThreadExec], automated PR-review thread Hosting/Triage/_Thread/review-pull-request-systemorph-meshweave-5ee4) was aborted because the model endpoint never emitted any data: the 5-minute first-data watchdog in MeshWeaver.AI.StreamStallGuardChatClient fired, threw ProviderStreamException, and the round was lost. Nothing retries the round automatically — recovery is the manual "resubmit to retry" the exception message suggests.
Probable cause
The guard behaved as designed (this is its first-data arm; the 30-minute mid-stream arm is a separate fingerprint, and the finish_reason: "error" faults a third), so the fault sits on the provider side: the endpoint accepted the call and produced nothing for five minutes. A single occurrence cannot distinguish a transient provider blip from routing/queueing trouble on a heavy PR-review prompt, so cause unclear — evidence points at the provider endpoint, medium confidence. The wrapping clients (StreamStallGuardChatClient, ProviderCallTimingChatClient) show no defect; the stack is the guard's own watchdog throwing.
Notable pattern: this is the third distinct provider-stream failure shape in two days to hit the review-pull-request-systemorph-* thread family on the memex control instance, after the 30-minute mid-stream stalls and the upstream finish_reason: "error" faults. Those PR-review rounds look disproportionately prone to provider stream failures — worth checking whether their prompts or model route make them so.
Related
Same component and symptom class as Systemorph/MeshWeaver#5859 (mid-stream stall aborts, no auto-retry) and #5819 (upstream finish_reason: "error", no retry in the round loop), both filed from sibling fingerprints at this log site. All three shapes would be fixed by one change — a bounded automatic retry, or at least a readable failure posted to the thread, for provider-stream failures in the [ThreadExec] round loop. A human can likely fold this into #5859 in seconds.
Impact
Low: one aborted round of an internal automation (the automated PR-review agent); no data loss, no portal breakage, workaround is resubmitting the round. This is the first time this guard arm has ever fired, so treat as an edge case — but if it recurs alongside the other two shapes, the PR-review agent's provider path needs a look.
Where to look
plugins-repo/src/MeshWeaver.AI/StreamStallGuardChatClient.cs— first-data watchdog (throw site line 112, wrapper line 188 in the current build, per the sample's stack trace; the 30-minute mid-stream arm sits at line 102).- The
[ThreadExec]round execution loop behindMeshWeaver.AI.AgentChatClient— where the exception surfaces as a bare ERROR with no retry; candidate fix site for a bounded retry covering all three failure shapes. - Provider-side metrics for the aborted call — to tell a provider outage window from request-side queueing on oversized prompts.
- Sibling incident nodes at the same site:
Admin/_LogIncident/8bfa7322a2e2815c(filed #5859),Admin/_LogIncident/94860cb8c742d627(filed #5819).
Evidence
| Fingerprint | 10a0c1a2ce0a446f |
| Category | MeshWeaver.AI.AgentChatClient |
| Severity | Error |
| Exception | MeshWeaver.AI.ProviderStreamException |
| Top frame | MeshWeaver.AI.StreamStallGuardChatClient.GetStreamingResponseAsync(IEnumerable1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext()` |
| Namespace | memex |
| Pods | memex-portal-deployment-79956556d6-qwxbp |
| Occurrences | 1 |
| First seen | 2026-09-29 07:22:38Z |
| Last seen | 2026-09-29 07:22:38Z |
| Routing | not determined — no configured route matches the category MeshWeaver.AI.AgentChatClient. This repository is the configured fallback, not a finding about who owns the fault; the category names the LOGGER, which may not be the subject. |
Recent log lines
2026-09-29 07:22:38Z memex-portal-deployment-79956556d6-qwxbp fail: MeshWeaver.AI.AgentChatClient[0]
[ThreadExec] ERROR: 07:22:38.730 threadPath=Hosting/Triage/_Thread/review-pull-request-systemorph-meshweave-5ee4
MeshWeaver.AI.ProviderStreamException: The model endpoint never started responding: no data arrived within 5m, so the round was aborted. Resubmit to retry.
at MeshWeaver.AI.StreamStallGuardChatClient.GetStreamingResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /home/runner/work/MeshWeaver/MeshWeaver/plugins-repo/src/MeshWeaver.AI/StreamStallGuardChatClient.cs:line 112
at MeshWeaver.AI.StreamStallGuardChatClient.GetStreamingResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /home/runner/work/MeshWeaver/MeshWeaver/plugins-repo/src/MeshWeaver.AI/StreamStallGuardChatClient.cs:line 188
at MeshWeaver.AI.StreamStallGuardChatClient.GetStreamingResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
at MeshWeaver.AI.ProviderCallTimingChatClient.GetStreamingResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /home/runner/work/MeshWeaver/MeshWeaver/plugins-repo/src/MeshWeaver.AI/ProviderCallTimingChatClient.cs:line 64
at MeshWeaver.AI.ProviderCallTimingChatClient.GetStreamingResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /home/runner/work/MeshWeaver/MeshWeaver/plugins-repo/src/MeshWeaver.AI/ProviderCallTimingChatClient.cs:line 108
at MeshWeaver.AI.ProviderCallTimingChatClient.GetStreamingResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
at Microsoft.Extensions.AI.FunctionInvokingChatC…[truncated]
Opened automatically from Admin/_LogIncident/10a0c1a2ce0a446f. Recurrences are folded into this issue rather than opening new ones.
It also stands for the whole log site 209546d2a5287b0a: other fingerprints of this site fold in here as comments rather than opening tickets of their own.
- Dominant language
- C#
- Stars
- 12
- Forks
- 5
- Avg merge
- 4h 15m
- Merged PRs (30d)
- 969
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing 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.
More from Systemorph/MeshWeaver
-
ApiTokenService.RevokeToken posts its revocation SaveMeshNodeRequest from the mesh (router) hub instead of a node-operation hubPossibly taken A pull request linked to this issue is open or already merged. Openbug sev:M
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Systemorph/MeshWeaver#6026 · 4 comments ·
Maintainers usually reply within 1 day
-
bug sev:L
Difficulty 1/5 1-3 hours Newbie friendliness 76/100
Systemorph/MeshWeaver#6011 · 3 comments ·
Maintainers usually reply within 1 day
-
bug sev:L
Difficulty 4/5 3-5 days Newbie friendliness 45/100
Systemorph/MeshWeaver#6450 ·
Maintainers usually reply within 1 day
-
bug sev:M
Difficulty 5/5 Over a week Newbie friendliness 12/100
Systemorph/MeshWeaver#6432 · 4 comments ·
Maintainers usually reply within 1 day
-
bug sev:M
Difficulty 4/5 3-5 days Newbie friendliness 22/100
Systemorph/MeshWeaver#6429 · 2 comments ·
Maintainers usually reply within 1 day
All issues in Systemorph/MeshWeaver
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
-
[誤判定] `define` が `デフィね`・`デフィ値` になるPossibly taken A pull request linked to this issue is open or already merged. Open再現済み 要トリアージ 誤判定
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
yksr-melt/Meltype#421 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
Facepunch/sbox-public#12063 · 1 comment ·
Maintainers usually reply within 2 days
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
facioquo/stock-indicators-dotnet#2316 · 1 comment ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
ionide/FsAutoComplete#1559 ·