Files
open-webui/backend/open_webui/utils/errors.py
Timothy Jaeryang Baek 396d9ac181 refac
2026-06-29 05:27:51 -05:00

26 lines
833 B
Python

import errno
from fastapi import HTTPException
from open_webui.constants import ERROR_MESSAGES
OS_ERROR_MESSAGES = {
errno.ENAMETOOLONG: 'File name is too long.',
errno.ENOSPC: 'The server is out of storage space.',
errno.EDQUOT: 'Server storage quota exceeded.',
errno.EACCES: 'Server storage is not writable.',
errno.EPERM: 'Server storage is not writable.',
errno.EROFS: 'Server storage is not writable.',
}
def error_detail(exc: Exception, fallback: str = '') -> str:
if isinstance(exc, HTTPException) and exc.detail:
return exc.detail if isinstance(exc.detail, str) else ERROR_MESSAGES.DEFAULT(fallback)
if isinstance(exc, OSError) and exc.errno in OS_ERROR_MESSAGES:
return ERROR_MESSAGES.DEFAULT(OS_ERROR_MESSAGES[exc.errno])
return ERROR_MESSAGES.DEFAULT(fallback)