Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Model streams that never start abort agent rounds at the 5-minute first-data guard with no automatic retry

Open
#5,880 13 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
csharp
Domain
ai, backend

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

bug sev:L
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 behind MeshWeaver.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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Systemorph/MeshWeaver

All issues in Systemorph/MeshWeaver

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.