openclaw - 💡(How to fix) Fix [Bug]: Setting timeout for specific provider doesn't override the default

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Provider-specific idle timeouts (models.providers.<id>.timeoutSeconds) are incorrectly capped by the global agents.defaults.timeoutSeconds instead of overriding it.

Error Message

The user receives a "model idle timeout" error stating, "Please try again, or increase models.providers.<id>.timeoutSeconds for slow local or self-hosted providers." Evidence from src/agents/pi-embedded-runner/run/llm-idle-timeout.ts shows that this timeout is resolved using Math.min(modelRequestTimeoutMs, ...timeoutBounds), where timeoutBounds includes agents.defaults.timeoutSeconds, causing the provider-specific timeout to be capped by the global default.

Root Cause

Provider-specific idle timeouts (models.providers.<id>.timeoutSeconds) are incorrectly capped by the global agents.defaults.timeoutSeconds instead of overriding it.

RAW_BUFFERClick to expand / collapse

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

Provider-specific idle timeouts (models.providers.<id>.timeoutSeconds) are incorrectly capped by the global agents.defaults.timeoutSeconds instead of overriding it.

Steps to reproduce

  1. Set agents.defaults.timeoutSeconds to a low value (e.g., 10).
  2. Set models.providers.<id>.timeoutSeconds to a higher value (e.g., 300).
  3. Request a response from that provider that stays idle for longer than 10 seconds.
  4. Observe the request being aborted by the idle timeout at 10 seconds, ignoring the 300s provider setting.

Expected behavior

The request should not abort at 10 seconds; it should honor the explicit provider-specific setting and allow the model to remain idle for up to 300 seconds, as implied by the recovery hint in src/agents/pi-embedded-runner/run.ts which directs users to increase models.providers.<id>.timeoutSeconds to resolve timeout issues for slow providers.

Actual behavior

The user receives a "model idle timeout" error stating, "Please try again, or increase models.providers.<id>.timeoutSeconds for slow local or self-hosted providers." Evidence from src/agents/pi-embedded-runner/run/llm-idle-timeout.ts shows that this timeout is resolved using Math.min(modelRequestTimeoutMs, ...timeoutBounds), where timeoutBounds includes agents.defaults.timeoutSeconds, causing the provider-specific timeout to be capped by the global default.

OpenClaw version

2026.5.12.beta8

Operating system

Linux

Install method

npm

Model

any

Provider / routing chain

OpenClaw -> any model

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Impact and severity

No response

Additional information

No response

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

The request should not abort at 10 seconds; it should honor the explicit provider-specific setting and allow the model to remain idle for up to 300 seconds, as implied by the recovery hint in src/agents/pi-embedded-runner/run.ts which directs users to increase models.providers.<id>.timeoutSeconds to resolve timeout issues for slow providers.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix [Bug]: Setting timeout for specific provider doesn't override the default