diff --git a/pulsar/client/staging/up.py b/pulsar/client/staging/up.py
index 9e648d35761415369bc13e4a92e6b53b3229235a..f6ca7df2c53f3382b6e2985794725fafd25a2b12 100644
--- a/pulsar/client/staging/up.py
+++ b/pulsar/client/staging/up.py
@@ -1,4 +1,5 @@
 from os.path import abspath, basename, join, exists
+from os.path import isdir
 from os.path import dirname
 from os.path import relpath
 from os import listdir, sep
@@ -199,17 +200,17 @@ class FileStager(object):
             self.transfer_tracker.handle_transfer(path, path_type.METADATA)
 
     def __working_directory_files(self):
-        if self.working_directory and exists(self.working_directory):
-            return listdir(self.working_directory)
-        else:
-            return []
+        return self.__list_files(self.working_directory)
 
     def __metadata_directory_files(self):
-        if self.metadata_directory and exists(self.metadata_directory):
-            return listdir(self.metadata_directory)
-        else:
+        return self.__list_files(self.metadata_directory)
+
+    def __list_files(self, directory):
+        if not directory or not exists(directory):
             return []
 
+        return [f for f in listdir(directory) if exists(f) and isdir(f)]
+
     def __initialize_version_file_rename(self):
         version_file = self.version_file
         if version_file:
diff --git a/pulsar/client/test/check.py b/pulsar/client/test/check.py
index 25c69cd91c0908d5094deb3833717a5b56b1cba0..599cf01bc018b87b48556cd3d5ac8c3602b8f050 100644
--- a/pulsar/client/test/check.py
+++ b/pulsar/client/test/check.py
@@ -127,6 +127,7 @@ def run(options):
         temp_shared_dir = os.path.join(temp_directory, "shared", "test1")
         temp_work_dir = os.path.join(temp_directory, "w")
         temp_metadata_dir = os.path.join(temp_directory, "m")
+        temp_false_working_dir = os.path.join(temp_metadata_dir, "working")
         temp_tool_dir = os.path.join(temp_directory, "t")
 
         __makedirs([
@@ -136,6 +137,7 @@ def run(options):
             temp_index_dir_sibbling,
             temp_shared_dir,
             temp_metadata_dir,
+            temp_false_working_dir,
         ])
 
         temp_input_path = os.path.join(temp_directory, "dataset_0.dat")