diff --git a/python/eosfstgcd/ctafstgcd.py b/python/eosfstgcd/ctafstgcd.py
index 837827bd239dd8a537ee88e5a8f586b95b5a43b5..5c23426a41ad594914ec1b7b15b2f4678eede263 100755
--- a/python/eosfstgcd/ctafstgcd.py
+++ b/python/eosfstgcd/ctafstgcd.py
@@ -302,8 +302,21 @@ class Gc:
         self.processfile(subdir, fstfile)
 
   def processfs(self, path):
-    fssubdirs = [os.path.join(path, f) for f in self.disk.listdir(path)
-      if re.match('^[0-9A-Fa-f]{8}$', f) and self.disk.isdir(os.path.join(path, f))]
+    fsfiles = []
+    try:
+      fsfiles = self.disk.listdir(path)
+    except Exception as err:
+      self.log.error("Failed to list contents of filesystem: path={}: {}".format(path, err))
+      return
+
+    fssubdirs = []
+    try:
+      fssubdirs = [os.path.join(path, f) for f in fsfiles
+        if re.match('^[0-9A-Fa-f]{8}$', f) and self.disk.isdir(os.path.join(path, f))]
+    except Exception as err:
+      self.log.error("Failed to determine sub directories of filesystem: path={}: {}".format(path, err))
+      return
+
     for fssubdir in fssubdirs:
       self.processfssubdir(fssubdir)