{"record":{"id":"537f214f45163fa4","repo":"BerriAI/litellm","slug":"invalid-callback-variable-key-must-be-one-of","errorCode":null,"errorMessage":"Invalid callback variable: {key}. Must be one of {valid_keys}","messagePattern":"Invalid callback variable: (.+?)\\. Must be one of (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/proxy/_types.py","lineNumber":1986,"sourceCode":"\n\nclass BlockModelRequest(LiteLLMPydanticObjectBase):\n    model_id: str  # required\n\n\nclass AddTeamCallback(LiteLLMPydanticObjectBase):\n    callback_name: str\n    callback_type: Literal[\"success\", \"failure\", \"success_and_failure\"] | None = \"success_and_failure\"\n    callback_vars: dict[str, str]\n\n    @model_validator(mode=\"before\")\n    @classmethod\n    def validate_callback_vars(cls, values):\n        callback_vars: Final = values.get(\"callback_vars\", {})\n        valid_keys: Final = set(StandardCallbackDynamicParams.__annotations__.keys())\n        for key, value in callback_vars.items():\n            if key not in valid_keys:\n                raise ValueError(f\"Invalid callback variable: {key}. Must be one of {valid_keys}\")\n            callback_vars[key] = str(value)\n            validate_no_callback_env_reference(key, callback_vars[key], source=\"key/team callback metadata\")\n        return values\n\n\nclass TeamCallbackMetadata(LiteLLMPydanticObjectBase):\n    success_callback: list[str] | None = []\n    failure_callback: list[str] | None = []\n    callbacks: list[str] | None = []\n    # for now - only supported for langfuse\n    callback_vars: dict[str, str] | None = {}\n\n    @model_validator(mode=\"before\")\n    @classmethod\n    def validate_callback_vars(cls, values):\n        success_callback: Final = values.get(\"success_callback\", [])\n        if success_callback is None:\n            values.pop(\"success_callback\", None)","sourceCodeStart":1968,"sourceCodeEnd":2004,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/_types.py#L1968-L2004","documentation":"AddTeamCallback validator checks each callback_vars key against StandardCallbackDynamicParams' known fields; an unknown variable cannot be forwarded to the callback implementation, so the team callback payload is rejected.","triggerScenarios":"Thrown at litellm/proxy/_types.py:1986 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a callback variable from the listed valid keys."],"exampleFix":"Pick a key from valid_keys.","handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}