diff --git a/swh/storage/cassandra/storage.py b/swh/storage/cassandra/storage.py
--- a/swh/storage/cassandra/storage.py
+++ b/swh/storage/cassandra/storage.py
@@ -347,9 +347,9 @@
             # with half the entries.
             self._cql_runner.directory_add_one(directory.id)
 
-        return {"directory:add": len(missing)}
+        return {"directory:add": len(directories)}
 
-    def directory_missing(self, directories):
+    def directory_missing(self, directories: List[Sha1Git]) -> Iterable[Sha1Git]:
         return self._cql_runner.directory_missing(directories)
 
     def _join_dentry_to_content(self, dentry: DirectoryEntry) -> Dict[str, Any]:
diff --git a/swh/storage/in_memory.py b/swh/storage/in_memory.py
--- a/swh/storage/in_memory.py
+++ b/swh/storage/in_memory.py
@@ -426,7 +426,7 @@
 
         return {"directory:add": count}
 
-    def directory_missing(self, directories):
+    def directory_missing(self, directories: List[Sha1Git]) -> Iterable[Sha1Git]:
         for id in directories:
             if id not in self._directories:
                 yield id
diff --git a/swh/storage/interface.py b/swh/storage/interface.py
--- a/swh/storage/interface.py
+++ b/swh/storage/interface.py
@@ -410,11 +410,11 @@
         ...
 
     @remote_api_endpoint("directory/missing")
-    def directory_missing(self, directories):
-        """List directories missing from storage
+    def directory_missing(self, directories: List[Sha1Git]) -> Iterable[Sha1Git]:
+        """List directories missing from storage.
 
         Args:
-            directories (iterable): an iterable of directory ids
+            directories: list of directory ids
 
         Yields:
             missing directory ids
diff --git a/swh/storage/storage.py b/swh/storage/storage.py
--- a/swh/storage/storage.py
+++ b/swh/storage/storage.py
@@ -523,7 +523,9 @@
 
     @timed
     @db_transaction_generator()
-    def directory_missing(self, directories, db=None, cur=None):
+    def directory_missing(
+        self, directories: List[Sha1Git], db=None, cur=None
+    ) -> Iterable[Sha1Git]:
         for obj in db.directory_missing_from_list(directories, cur):
             yield obj[0]