BerriAI/litellm · error · Exception

litellm_params not provided

Error message

litellm_params not provided

What it means

Structural guard on model update: after the DB row is located and auth passes, the merged deployment's litellm_params is absent — update payloads must carry litellm_params since that is where connection settings live; rejected before the DB write.

Source

Thrown at litellm/proxy/management_endpoints/model_management_endpoints.py:1954

        await ModelManagementAuthChecks.can_user_make_model_call(
            model_params=deployment,
            user_api_key_dict=user_api_key_dict,
            prisma_client=prisma_client,
            premium_user=premium_user,
        )

        _raise_on_strategy_router_write_violation(
            incoming_params=model_params.litellm_params,
            existing_params=deployment.litellm_params,
        )

        # update DB
        if store_model_in_db is True:
            _existing_litellm_params_dict: Final = dict(_existing_litellm_params.litellm_params)

            if model_params.litellm_params is None:
                raise Exception("litellm_params not provided")

            _new_litellm_params_dict: Final = model_params.litellm_params.dict(exclude_none=True)

            ### ENCRYPT PARAMS ###
            for k, v in _new_litellm_params_dict.items():
                encrypted_value = encrypt_value_helper(value=v)
                model_params.litellm_params[k] = encrypted_value

            ### MERGE WITH EXISTING DATA ###
            merged_dictionary: Final = {}
            _mp: Final = model_params.litellm_params.dict()

            for key, value in _mp.items():
                if value is not None:
                    merged_dictionary[key] = value
                elif key in _existing_litellm_params_dict and _existing_litellm_params_dict[key] is not None:
                    merged_dictionary[key] = _existing_litellm_params_dict[key]
                else:

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Include litellm_params in the request body.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/proxy/management_endpoints/model_management_endpoints.py:1954 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of BerriAI/litellm@77b7c6c40c (2026-08-18). Data as JSON: /api/errors/a6fe7724bd200ffa. Report an issue: GitHub.