yorukot/superfile · error
trash path %s is not a directory
Error message
trash path %s is not a directory
What it means
Error "trash path %s is not a directory" thrown in yorukot/superfile.
Source
Thrown at src/internal/trash/trash_linux.go:202
return fmt.Errorf("failed to create trash directory %s: %w", dir, err)
}
if err := ensureOwnedPrivateTrash(dir); err != nil {
return err
}
}
return nil
}
func ensureOwnedPrivateTrash(path string) error {
info, err := os.Lstat(path)
if err != nil {
return err
}
if info.Mode()&os.ModeSymlink != 0 {
return fmt.Errorf("refusing symlink trash directory %s", path)
}
if !info.IsDir() {
return fmt.Errorf("trash path %s is not a directory", path)
}
if stat, ok := info.Sys().(*syscall.Stat_t); ok && int(stat.Uid) != os.Getuid() {
return fmt.Errorf("trash directory %s is not owned by current user", path)
}
if info.Mode().Perm()&0o077 != 0 {
//nolint:gosec // Directory execute bit is required; trash directories are restricted to the owner.
if err := os.Chmod(path, 0o700); err != nil {
return fmt.Errorf("failed to restrict trash directory %s: %w", path, err)
}
}
return nil
}
func validSharedTrash(path string) bool {
info, err := os.Lstat(path)
if err != nil || !info.IsDir() || info.Mode()&os.ModeSymlink != 0 {
return false
}View on GitHub (pinned to b72f550bc6)
When it happens
Trigger: Thrown at src/internal/trash/trash_linux.go:202 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of yorukot/superfile@b72f550bc6 (2026-09-01).
Data as JSON: /api/errors/2abbad025d4a8388.
Report an issue: GitHub.