Skip to content

fix(agentgateway): state what the viaMuster request timeout bounds; keep 300s - #73

Merged
teemow merged 2 commits into
mainfrom
fix/viamuster-timeout-progress
Oct 13, 2026
Merged

teemow merged 2 commits into
mainfrom
fix/viamuster-timeout-progress

Conversation

@teemow

@teemow teemow commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Problem

#72 assumed that agentgateway.viaMusterTimeouts.request (300s) cuts a tools/call that muster v5.40.0 (giantswarm/muster#1487) keeps alive by progress up to spec.progress.maxDuration (3600 s). It does not. The comments on the value, though, said it must cover how long muster lets a call run, which is wrong and pointed to raising it.

Root cause

agentgateway's requestTimeout on the backend is a deadline for the upstream response to start, not for the call to end. muster starts the response with the final answer, or with the event stream at a call's first progress notification. Both happen within the MCPServer's spec.timeout (up to 300 s). After that, the deadline no longer applies. So 300s already covers every call. Raising it would only let a muster that never answers hold a call longer.

Proposed solution

  • viaMusterTimeouts.request stays at 300s.
  • The values, schema, README and template comments now state what it bounds and how it relates to spec.timeout and spec.progress.maxDuration. The via-muster golden render is updated and a CHANGELOG entry added.

Acceptance criteria

  • With viaMuster: true and the default values, a tools/call that reports progress for longer than 300 s completes through the gateway.
  • The comment on viaMusterTimeouts.request states how it relates to muster's spec.timeout and spec.progress.maxDuration.

Testing

The test ran on agentlab-2: agent-platform 4.129.0, muster 5.40.0, ingress.mode: agentgateway-muster. The calls went through the viaMuster route agent-platform/agent-platform-mcps (protocol=mcp in agentgateway's access log). The test server's tool runs for N seconds and sends progress every 20 s. It is registered with muster with timeout: 60 and progress.maxDuration: 900.

Chart, requestTimeout Call Outcome
released 0.11.4, 300s 360 s with progress completed at 360 s, 18 progress events
this branch (0.11.6-dev.apm72.2 from the lab registry), 300s 360 s with progress completed at 360 s, progress throughout
policy patched to 30s 90 s with progress completed at 90 s
policy patched to 30s 45 s with no progress cut at 30 s, upstream call timeout
  • agentlab platform-test is green on the branch chart and again after restoring the release (13 PASS each).
  • make verify-render is green with helm v3.17.3, the version CI pins.

… ceiling (3600s)

muster keeps a tools/call that reports progress alive past spec.timeout up to spec.progress.maxDuration (at most 3600 s); the 300s gateway deadline cut such calls. agentgateway has no per-request idle timeout, so the idle cut stays muster's spec.timeout.
@teemow
teemow requested a review from a team as a code owner October 13, 2026 14:02
…that it bounds the response start, not progress-kept calls

Lab proof: a 360 s call with progress passes the 300s deadline uncut; at a 30s deadline a silent call is cut and a streaming one is not.
@teemow teemow changed the title fix(agentgateway): viaMuster request timeout covers muster's progress ceiling (3600s) fix(agentgateway): state what the viaMuster request timeout bounds; keep 300s Oct 13, 2026
@teemow
teemow merged commit ecc3a14 into main Oct 13, 2026
9 checks passed
@teemow
teemow deleted the fix/viamuster-timeout-progress branch October 13, 2026 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant