{"record":{"id":"dbf6ba08927a4eeb","repo":"BerriAI/litellm","slug":"must-be-a-non-empty-string","errorCode":null,"errorMessage":"must be a non-empty string","messagePattern":"must be a non-empty string","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/types/proxy/vantage_endpoints.py","lineNumber":25,"sourceCode":"\nfrom pydantic import BaseModel, Field, field_validator\n\n\nclass VantageInitRequest(BaseModel):\n    \"\"\"Request model for initializing Vantage settings\"\"\"\n\n    api_key: str = Field(..., description=\"Vantage API key for authentication\")\n    integration_token: str = Field(..., description=\"Vantage integration token for the cost-import endpoint\")\n    base_url: str = Field(\n        default=\"https://api.vantage.sh\",\n        description=\"Vantage API base URL (default: https://api.vantage.sh)\",\n    )\n\n    @field_validator(\"api_key\", \"integration_token\")\n    @classmethod\n    def must_be_non_empty(cls, v: str) -> str:\n        if not v.strip():\n            raise ValueError(\"must be a non-empty string\")\n        return v\n\n\nclass VantageInitResponse(BaseModel):\n    \"\"\"Response model for Vantage initialization\"\"\"\n\n    message: str\n    status: str\n\n\nclass VantageExportRequest(BaseModel):\n    \"\"\"Request model for Vantage export operations (actual export, no default limit)\"\"\"\n\n    limit: int | None = Field(\n        None,\n        description=\"Optional limit on number of records to export (default: no limit)\",\n    )\n    start_time_utc: datetime | None = Field(None, description=\"Start time for data export in UTC\")","sourceCodeStart":7,"sourceCodeEnd":43,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/types/proxy/vantage_endpoints.py#L7-L43","documentation":"Shared field validator on VantageInitRequest's api_key and integration_token: after stripping, the string is empty. Both credentials are required (non-optional fields), so an empty value is treated as missing and rejected.","triggerScenarios":"Thrown at litellm/types/proxy/vantage_endpoints.py:25 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass a non-empty, non-whitespace string value for this field."],"exampleFix":null,"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-14T05:17:10.506Z"}