{"record":{"id":"f3ec45c29e87cc13","repo":"BerriAI/litellm","slug":"cloud-storage-object-name-must-be-relative","errorCode":null,"errorMessage":"Cloud storage object name must be relative","messagePattern":"Cloud storage object name must be relative","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/litellm_core_utils/cloud_storage_security.py","lineNumber":77,"sourceCode":"        sanitized_segment = sanitize_cloud_object_component(segment, fallback=\"\")\n        if sanitized_segment:\n            segments.append(sanitized_segment)\n\n    if not segments:\n        return fallback\n    return \"/\".join(segments)\n\n\ndef build_managed_cloud_object_name(prefix: str, filename: str | None, fallback_filename: str = \"file\") -> str:\n    safe_filename: Final = sanitize_cloud_object_component(filename, fallback=fallback_filename)\n    return f\"{prefix}{uuid.uuid4().hex}-{safe_filename}\"\n\n\ndef _validate_cloud_object_path(object_name: str) -> None:\n    if not object_name:\n        raise ValueError(\"Cloud storage object name is required\")\n    if object_name.startswith(\"/\"):\n        raise ValueError(\"Cloud storage object name must be relative\")\n    if any(ord(char) < 32 or ord(char) == 127 for char in object_name):\n        raise ValueError(\"Cloud storage object name contains control characters\")\n    segments: Final = object_name.split(\"/\")\n    if any(segment in {\".\", \"..\"} for segment in segments):\n        raise ValueError(\"Cloud storage object name contains an invalid path segment\")\n    if \"\" in segments[:-1]:\n        raise ValueError(\"Cloud storage object name contains an invalid path segment\")\n\n\ndef split_configured_cloud_bucket_name(bucket_name: str) -> tuple[str, str]:\n    if not isinstance(bucket_name, str) or not bucket_name.strip():\n        raise ValueError(\"Cloud storage bucket name is required\")\n\n    bucket_name = bucket_name.strip()\n    if \"://\" in bucket_name or \"?\" in bucket_name or \"#\" in bucket_name:\n        raise ValueError(\"Cloud storage bucket name must not include a URI scheme or query\")\n    if any(ord(char) < 32 or ord(char) == 127 for char in bucket_name):\n        raise ValueError(\"Cloud storage bucket name contains control characters\")","sourceCodeStart":59,"sourceCodeEnd":95,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/litellm_core_utils/cloud_storage_security.py#L59-L95","documentation":"Error \"Cloud storage object name must be relative\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/litellm_core_utils/cloud_storage_security.py:77 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a relative object name, not an absolute path or URI."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d","analyzedAt":"2026-08-15T07:12:03.035Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}