Skip to content

[Bug]: Router.update_settings() crashes with TypeError when None is passed for integer settings #28126

Description

@DSurya11

Check for existing issues

  • I have searched the existing issues and checked that my issue is not a duplicate.

What happened?

Router.update_settings() raises an unhandled TypeError when None is passed for any integer setting (timeout, num_retries, retry_after, allowed_fails, cooldown_time).

Expected behavior: passing None should reset the setting to None without crashing.

I have a fix ready and will submit a PR immediately after filing this issue.

Steps to Reproduce

  1. Install litellm: pip install litellm

  2. Run the following Python script:

from litellm import Router
router = Router(model_list=[
{"model_name": "test", "litellm_params": {"model": "openai/gpt-4", "api_key": "sk-fake"}}
])
router.update_settings(timeout=None)

  1. Observe TypeError is raised

Relevant log output

File "litellm/router.py", line 9523, in update_settings
    _casted_value = int(kwargs[var])
TypeError: int() argument must be a string, a bytes-like object or a real number, not 'NoneType'

What part of LiteLLM is this about?

SDK (litellm Python package)

What LiteLLM version are you on ?

v1.86.0

Twitter / LinkedIn details

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions