BerriAI/litellm · error · ValueError
invalid fine_tuning config, expected a list is not a list
Error message
invalid fine_tuning config, expected a list is not a list
What it means
Raised by set_fine_tuning_config at proxy startup when the fine_tuning_settings block in config.yaml is not a YAML list. Each list element is supposed to be a per-provider dict whose os.environ/ values are resolved into secrets; a mapping or scalar at the top level cannot represent per-provider settings, so config loading is rejected.
Source
Thrown at litellm/proxy/fine_tuning_endpoints/endpoints.py:38
validate_managed_id_requirement,
)
from litellm.proxy.utils import handle_exception_on_proxy
from litellm.types.utils import LiteLLMFineTuningJob
router: Final = APIRouter()
from litellm.types.llms.openai import LiteLLMFineTuningJobCreate
fine_tuning_config = None
def set_fine_tuning_config(config):
if config is None:
return
global fine_tuning_config
if not isinstance(config, list):
raise ValueError("invalid fine_tuning config, expected a list is not a list")
for element in config:
if isinstance(element, dict):
for key, value in element.items():
if isinstance(value, str) and value.startswith("os.environ/"):
element[key] = litellm.get_secret(value)
fine_tuning_config = config
# Function to search for specific custom_llm_provider and return its configuration
def get_fine_tuning_provider_config(
custom_llm_provider: str,
):
global fine_tuning_config
if fine_tuning_config is None:
raise ValueError("fine_tuning_config is not set, set it on your config.yaml file.")
for setting in fine_tuning_config:View on GitHub (pinned to 77b7c6c40c)
Solutions
- Define fine_tuning_config as a list in config.yaml.
Example fix
fine_tuning_config:
- finetune_settings: {...} Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at litellm/proxy/fine_tuning_endpoints/endpoints.py:38 when the library encounters an invalid state.
Common situations: fine_tuning_config in config.yaml is not a list (e.g. a dict or scalar).
AI-assisted analysis of BerriAI/litellm@77b7c6c40c (2026-08-18).
Data as JSON: /api/errors/2591938584991544.
Report an issue: GitHub.