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

  1. Re-add or re-upload the dataset, or pick another dataset as the message says.
  2. Check the path actually exists on the machine running the backend (not the browser machine) — resolve_dataset_path resolves against server-side roots.
  3. If using containerized Studio, verify the volume mount for the datasets dir is still attached and points at the same host path.
  4. 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

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


AI-assisted analysis of unslothai/unsloth@203007d190 (2026-08-15). Data as JSON: /api/errors/6cf5752c1fb59e2a. Report an issue: GitHub.