apache/hadoop · error · SnapshotException
The directory {} cannot be deleted since {} is snapshottable
Error message
The directory {} cannot be deleted since {} is snapshottable and already has snapshots What it means
Error "The directory {} cannot be deleted since {} is snapshottable and already has snapshots" thrown in apache/hadoop.
Source
Thrown at hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSDirSnapshotOp.java:339
/**
* Check if the given INode (or one of its descendants) is snapshottable and
* already has snapshots.
*
* @param target The given INode
* @param snapshottableDirs The list of directories that are snapshottable
* but do not have snapshots yet
*/
private static void checkSnapshot(
INode target, List<INodeDirectory> snapshottableDirs)
throws SnapshotException {
if (target.isDirectory()) {
INodeDirectory targetDir = target.asDirectory();
DirectorySnapshottableFeature sf = targetDir
.getDirectorySnapshottableFeature();
if (sf != null) {
if (sf.getNumSnapshots() > 0) {
String fullPath = targetDir.getFullPathName();
throw new SnapshotException("The directory " + fullPath
+ " cannot be deleted since " + fullPath
+ " is snapshottable and already has snapshots");
} else {
if (snapshottableDirs != null) {
snapshottableDirs.add(targetDir);
}
}
}
for (INode child : targetDir.getChildrenList(Snapshot.CURRENT_STATE_ID)) {
checkSnapshot(child, snapshottableDirs);
}
}
}
/**
* Check if the given path (or one of its descendants) is snapshottable and
* already has snapshots.
*View on GitHub (pinned to 2add963021)
Solutions
- Delete all snapshots of the directory first (hdfs dfs -deleteSnapshot) then disallow snapshots and delete it.
When it happens
Trigger: Deleting a snapshottable directory that already has snapshots; the snapshots must be deleted first.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22).
Data as JSON: /api/errors/33e5c94ebbcf4e7a.
Report an issue: GitHub.