unslothai/unsloth · error · HTTPException
This dataset is no longer on disk. Add it again or pick anot
Error message
This dataset is no longer on disk. Add it again or pick another dataset.
What it means
HTTP 404 raised while building a dataset preview when the request references a local dataset (name resolved by `resolve_dataset_path` to a local root) but that path no longer exists on disk. The `_MISSING_DATASET_DETAIL` message tells the user the on-disk dataset vanished after it was registered/selected. Only fires for local refs — hub refs fall through to remote tiers.
Source
Thrown at studio/backend/hub/services/datasets/formatting.py:354
from itertools import islice
PREVIEW_SIZE = 10
logger.info(f"Checking format for dataset: {request.dataset_name}")
# An audio column decodes on the first preview row, so this precedes every tier.
ensure_audio_decoding()
try:
dataset_path = resolve_dataset_path(request.dataset_name)
except ValueError as e:
# Malformed path (null bytes, '..', outside roots) is a client error: surface 400, not 500.
raise HTTPException(status_code = 400, detail = str(e)) from e
total_rows = None
dataset_exists = dataset_path.exists()
if not dataset_exists and _is_local_dataset_ref(request.dataset_name):
raise HTTPException(status_code = 404, detail = _MISSING_DATASET_DETAIL)
if dataset_exists:
train_split = request.train_split or "train"
preview_slice, total_rows = _load_local_preview_slice(
dataset_path = dataset_path,
train_split = train_split,
preview_size = PREVIEW_SIZE,
)
else:
from datasets import Dataset, load_dataset
# Tier 1: list_repo_files → load only the first data file
cached_preview = (
_load_any_cached_hf_preview_slice(request, PREVIEW_SIZE, hf_token)
if request.prefer_local_cache
else None
)
if cached_preview is not None:View on GitHub (pinned to 203007d190)
Solutions
- Re-add or re-upload the dataset, or pick another dataset as the message says.
- Check the path actually exists on the machine running the backend (not the browser machine) — resolve_dataset_path resolves against server-side roots.
- If using containerized Studio, verify the volume mount for the datasets dir is still attached and points at the same host path.
- Refresh the local datasets list so deleted entries disappear from the picker.
Defensive patterns
Strategy: validation
Validate before calling
from pathlib import Path
def local_dataset_ready(name: str, resolver) -> bool:
try:
p = resolver(name)
except ValueError:
return False
return p.exists() Try / catch
try:
preview = get_preview(client, req)
except HTTPStatusError as e:
if e.response.status_code == 404 and "no longer on disk" in e.response.text:
show_re_add_dialog(dataset_name) # guided recovery instead of an error toast
else:
raise Prevention
- Verify local dataset paths exist right before each preview call rather than trusting a cached listing.
- Do not delete/move upload directories out-of-band; use the app's delete endpoint.
- In containers, pin the datasets volume mount so paths survive restarts.
When it happens
Trigger: Previewing an uploaded or imported local dataset after its directory was deleted, moved, or renamed outside Studio; the upload temp dir was cleaned; a native-path import pointed at a file removed since.
Common situations: User deleted the folder in the file explorer while it stayed in the UI list; a cleanup job swept the uploads dir; the app runs in a container and the bind-mount/volume changed.
Related errors
- dataset_local_cache_miss
- Execution artifacts are no longer available.
- Execution artifact path is not a dataset folder.
- GGUF conversion produced a symlink, refusing to relocate it:
- Local base_repo is not a diffusers pipeline directory (no {i
AI-assisted analysis of unslothai/unsloth@203007d190 (2026-08-15).
Data as JSON: /api/errors/6cf5752c1fb59e2a.
Report an issue: GitHub.