Lakehouse Digest
ISSUE 028 · OCTOBER 16, 2026

Your notebook works on the old cluster and dies on serverless — your DBFS mounts are deprecated

DBFS mounts are a deprecated pattern — and the deprecation is now a hard break. Mounts don't work on serverless compute or Unity Catalog, bypass UC governance entirely, and don't exist on workspaces provisioned after September 30, 2026. This issue's six-step ladder migrates /mnt/ paths to Unity Catalog volumes.

THE DIFFERENCE

Why Lakehouse Digest

Short enough to read between meetings

Every issue is a 10-minute read: one tactic, one pattern, one answered question.

Code you can run today

Copy-paste PySpark and SQL checked against official Databricks docs.

Primary sources, no hype

Claims link to primary sources — official docs and verified community deep-dives; no invented benchmarks.

THE THREE-PART READ

Your notebook works on the old cluster and dies on serverless — your DBFS mounts are deprecated

DBFS mounts are a deprecated pattern — and the deprecation is now a hard break. Mounts don't work on serverless compute or Unity Catalog, bypass UC governance entirely, and don't exist on workspaces provisioned after September 30, 2026. This issue's six-step ladder migrates /mnt/ paths to Unity Catalog volumes.

TIP

Inventory before the move

Find mounts, FileStore dependencies, init scripts, libraries, notebooks, and code before target compute finds them for you.

Read Issue 028 →
IMPLEMENTATION

Register, re-point, verify

Use an external volume for existing cloud data, copy DBFS-root files, and cut reads over to governed paths.

Read Issue 028 →
DEV Q&A

The path has nothing behind it

Serverless and new UC-only workspaces do not provide the legacy mount your notebook expects.

Read Issue 028 →

Last verified against official Databricks documentation: October 16, 2026. Correction history: none (new issue).

Run the inventory before target compute finds the break.

Run a mount inventory BEFORE your next workspace or serverless move: list every mount with dbutils.fs.mounts(), then grep your notebooks and jobs for /mnt/, dbfs:/FileStore, and dbfs:/databricks/init. Rule of thumb: /mnt/ data becomes a Unity Catalog volume; notebooks and code become workspace files or Git folders; JARs and wheels become volumes too. Init scripts move to volumes on classic compute — but serverless doesn't run init scripts at all, so a serverless move means switching to serverless environments instead.

The six-step migration ladder

  1. Inventory: dbutils.fs.mounts(); grep notebooks, jobs, and libraries for /mnt/, dbfs:/FileStore, and dbfs:/databricks/init.
  2. Create an external location over the cloud bucket (one-time admin setup; storage credential + metastore admin).
  3. Register the data without moving it: CREATE EXTERNAL VOLUME IF NOT EXISTS main.data.raw_files LOCATION 's3://my-bucket/csv-files/'; — LOCATION takes a full cloud-storage URI (the external location from step 2 must cover that path). When files already live in cloud storage, no data movement is needed. For brand-new file collections, a managed volume (no LOCATION) is the simpler choice.
  4. Copy DBFS-root files: dbutils.fs.cp("dbfs:/FileStore/…", "/Volumes/<cat>/<sch>/<vol>/…"); large sets go through the Databricks CLI fs cp -r or a distributed Spark copy.
  5. Re-point every read to /Volumes/<catalog>/<schema>/<volume>/… and grant USE CATALOG + USE SCHEMA + READ VOLUME (writers also need WRITE VOLUME).
  6. Verify on the target compute first (dbutils.fs.ls("/Volumes/<cat>/<sch>/<vol>/") from serverless or the new workspace), then clean up: dbutils.fs.unmount("/mnt/oldpath") — and lock down or delete the moved DBFS-root data. Do not keep the same cloud storage prefix both mounted and registered.

Also: JARs and Python wheels move to UC volumes; notebooks and code move to workspace files or Git folders — not to volumes. Init scripts are compute-scoped: on classic UC compute, store them in UC volumes — but serverless compute does not run init scripts at all, so a serverless move replaces them with serverless environments (a base environment or notebook dependencies).

DEV Q&A · 2 MIN

The legacy path is compute-bound.

Replace the mount with a governed volume path, then verify it on target compute before cutting over.

My notebook runs fine on our old cluster but fails on serverless / a new workspace — why?

Because the mount doesn't exist there. Mounts are incompatible with serverless compute, and workspaces provisioned after September 30, 2026 aren't provisioned with DBFS root or mounts at all — the /mnt/... path your notebook references simply has nothing behind it on that compute. The fix is the migration: register the bucket prefix as an external volume, re-point reads to /Volumes/<catalog>/<schema>/<volume>/…, and grant USE CATALOG + USE SCHEMA + READ VOLUME. Verify with dbutils.fs.ls() on the volume path from the target compute before cutting over.

ABOUT THIS ARTICLE

Scope, verification, and sources.

Last verified against official Databricks documentation: October 16, 2026. Correction history: none (new issue). Official documentation — Upgrade a Databricks workspace to Unity Catalog, DBFS mounts, DBFS and Unity Catalog best practices, and Unity Catalog privileges reference (READ VOLUME, WRITE VOLUME, USE CATALOG, and USE SCHEMA). Practitioner case study — not core documentation: From HMS to Unity Catalog: A Self-Service Migration Playbook.

BROWSE BY TOPIC

Follow the problem you're solving.

Jump straight to the permanent issue pages for each topic.

ARCHIVE

All issues

Issues, newest first.

No issues match — try the Resources page

KNOWLEDGE SEARCH

Ask Lakehouse Digest

Ask a Databricks implementation question. Answers are grounded in Lakehouse Digest issues and linked sources.

Answers may be incomplete. Check the linked official documentation before changing production workloads.

    ABOUT

    About Lakehouse Digest.

    Contact: sbogale@sb9tech.com

    Lakehouse Digest is a short, practical newsletter for Databricks engineers, published by the Lakehouse Digest team. Each issue delivers one tactic to try, one production pattern to understand, and one hard developer question answered with code and primary-source links. It is an independent publication and is not affiliated with Databricks, Inc.

    RECOMMENDED LEARNING

    Build the skill behind the fix.

    Topic-led learning paths for readers who want to turn this issue’s tactics into repeatable Databricks practice.

    GO DEEPER · ISSUE 028

    The mount-to-volume migration ladder

    Inventory legacy paths, register existing cloud data as governed volumes, and verify the cutover on target compute before unmounting.

    Read Issue 028 →
    BUILD FOR PRODUCTION

    Data engineering workflows

    Pipelines, orchestration, and streaming practice that turn this issue's tactics into repeatable habits.

    Browse DataCamp data engineering →

    Partner links: we may earn a commission if you enroll through these recommendations, at no extra cost to you.

    FAQ

    Questions, answered.

    What is Lakehouse Digest?
    A short, practical newsletter for Databricks engineers — one tactic, one production pattern, one hard developer question per issue.
    How often do issues publish?
    Daily.
    Is it free?
    Yes.
    How do I get issues by email?
    Email delivery isn't wired up yet — a subscribe form will appear on this page when it launches; nothing here collects your address today.
    Who publishes it?
    The Lakehouse Digest team — an independent publication, not affiliated with Databricks, Inc.
    Can I sponsor an issue?
    Yes — email sbogale@sb9tech.com with subject “Sponsoring Lakehouse Digest”.
    THE NEWSLETTER

    One useful Databricks issue, built for the working session.

    Concise implementation notes, real failure modes, and developer answers—without a news recap you could get anywhere.

    FREE DOWNLOAD

    Lakehouse health-check notebook

    Seven diagnostics from Issues 001–009 in one Databricks notebook: small-file detection, VACUUM safety, skew checks, MERGE dedupe validation, streaming checkpoint recovery, driver-memory safety, and failed-job repair. Import it into your workspace and run it against your own tables.

    Download the notebook