Skip to content

[Bug]: OpenRouter timeout not respected - uses default instead of user-configured value #16394

@yellowsubmarine372

Description

@yellowsubmarine372

What happened?

When setting a timeout for OpenRouter requests (e.g., timeout=10), the request does not timeout at 10 seconds. Instead, it continues for up to 300 seconds (aiohttp's default).

response = await self.router.acompletion(
    model="openrouter/anthropic/claude-3-sonnet",
    timeout=10
)
# request continues past 10 seconds without timing out

cause

OpenRouter uses base_llm_http_handler with aiohttp_transport. In aiohttp_transport.py, the ClientTimeout is created without setting the total field:

# Current code
timeout=ClientTimeout(
    sock_connect=timeout.get("connect"),
    sock_read=timeout.get("read"),
    connect=timeout.get("pool"),
)
# total is not set → defaults to 300s

Why this matters

Inconsistent behavior across providers:

  • ✅ Anthropic, Bedrock, OpenAI: uses user timeout correctly
  • ❌ OpenRouter: Ignores user timeout, uses 300s as default

Relevant log output

No error logs - request simply doesn't timeout as expected.

Are you a ML Ops Team?

Yes

What LiteLLM version are you on ?

v1.76.2

Twitter / LinkedIn details

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions