BerriAI/litellm · error · ValueError

Unknown file type for extension: {extension}

Error message

Unknown file type for extension: {extension}

What it means

Reverse-lookup failure in get_file_type_from_extension: the extension string (compared case-insensitively) is not present in any FileType's extension list, so it cannot be mapped to a FileType enum member. The extension argument is the invalid input.

Source

Thrown at litellm/types/files.py:169

"""
Util Functions
"""


def get_file_extension_from_mime_type(mime_type: str) -> str:
    for file_type, mime in FILE_MIME_TYPES.items():
        if mime.lower() == mime_type.lower():
            return FILE_EXTENSIONS[file_type][0]
    raise ValueError(f"Unknown extension for mime type: {mime_type}")


def get_file_type_from_extension(extension: str) -> FileType:
    for file_type, extensions in FILE_EXTENSIONS.items():
        if extension.lower() in extensions:
            return file_type

    raise ValueError(f"Unknown file type for extension: {extension}")


def get_file_extension_for_file_type(file_type: FileType) -> str:
    return FILE_EXTENSIONS[file_type][0]


def get_file_mime_type_for_file_type(file_type: FileType) -> str:
    return FILE_MIME_TYPES[file_type]


def get_file_mime_type_from_extension(extension: str) -> str:
    file_type: Final = get_file_type_from_extension(extension)
    return get_file_mime_type_for_file_type(file_type)


"""
FileType Type Groupings (Videos, Images, etc)
"""

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Use a known file extension (pdf, txt, json, ...) or add a mapping for {extension}.
  2. Check for typos in the filename's extension.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/types/files.py:169 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/1d66bc9df65ce9bc. Report an issue: GitHub.