apache/superset · error · DatabaseUploadFileTooLarge
Database upload file exceeds the maximum allowed size.
Error message
Database upload file exceeds the maximum allowed size.
What it means
DatabaseUploadFileTooLarge is raised by validate_file_size when the uploaded file exceeds UPLOAD_MAX_FILE_SIZE_BYTES. The check is shared by the upload command and the metadata endpoint so oversized files are rejected before being read into memory.
Source
Thrown at superset/commands/database/uploaders/base.py:262
return size
@classmethod
def validate_file_size(cls, file: Any) -> None:
"""
Reject a file whose size exceeds ``UPLOAD_MAX_FILE_SIZE_BYTES``.
Shared by the upload command and the metadata endpoint so oversized
files are rejected before their contents are read into memory,
regardless of which path is used.
:raises DatabaseUploadFileTooLarge: if the file is larger than the limit
"""
max_file_size = current_app.config.get("UPLOAD_MAX_FILE_SIZE_BYTES")
if max_file_size is None or file is None:
return
size = cls._file_size_bytes(file)
if size is not None and size > max_file_size:
raise DatabaseUploadFileTooLarge()
@staticmethod
def _resolve_default_schema(database: Database) -> Optional[str]:
"""Resolve the database's default schema so uploaded datasets carry an
explicit schema instead of NULL, which would otherwise duplicate an
existing dataset over the same table (see #36305)."""
try:
return database.get_default_schema(database.get_default_catalog())
except Exception: # pylint: disable=broad-except
# Resolution opens an inspector connection; a failure here must
# degrade to the no-schema behavior rather than fail the upload.
logger.warning(
"Unable to resolve default schema for upload; proceeding without one",
exc_info=True,
)
return None
def validate(self) -> None:View on GitHub (pinned to f4587218dd)
Solutions
- Split the file or upload a smaller extract
- Raise UPLOAD_MAX_FILE_SIZE_BYTES in superset_config.py if the deployment can afford the memory
- Stream/load the data directly into the database instead of the UI upload path
Example fix
# superset_config.py # before # (no override; default limit hit) # after UPLOAD_MAX_FILE_SIZE_BYTES = 500 * 1024 * 1024 # 500MB, if resources allow
Defensive patterns
Strategy: validation
Validate before calling
max_size = current_app.config.get("UPLOAD_MAX_FILE_SIZE_BYTES")
if max_size is not None:
file.seek(0, 2)
size = file.tell()
file.seek(0)
if size > max_size:
raise ValueError(f"file {size}B exceeds limit {max_size}B") Try / catch
try:
UploadCommand(...).run()
except DatabaseUploadFileTooLarge:
# prompt for a smaller/split file
... Prevention
- Check file size client-side before starting the upload
- Chunk large datasets into the DB directly
When it happens
Trigger: Uploading a CSV/Excel larger than UPLOAD_MAX_FILE_SIZE_BYTES (default caps apply when configured); checking file metadata on an oversized file.
Common situations: Large exports uploaded without chunking; operators lowering the limit; environments with strict memory budgets.
Related errors
- Table already exists. You can change your 'if table already
- Database upload file failed
- A soft-deleted dataset (uuid %(uuid)s) already references th
- Database not found.
- Database schema is not allowed for csv uploads.
AI-assisted analysis of apache/superset@f4587218dd (2026-08-14).
Data as JSON: /api/errors/aafea708a60df1e1.
Report an issue: GitHub.