diff --git a/cwltool/process.py b/cwltool/process.py
index <HASH>..<HASH> 100644
--- a/cwltool/process.py
+++ b/cwltool/process.py
@@ -344,6 +344,7 @@ def formatSubclassOf(fmt, cls, ontology, visited):
 def checkFormat(actualFile, inputFormats, ontology):
     # type: (Union[Dict[Text, Any], List, Text], Union[List[Text], Text], Graph) -> None
     for af in aslist(actualFile):
+        if not af: continue
         if "format" not in af:
             raise validate.ValidationException(u"Missing required 'format' for File %s" % af)
         for inpf in aslist(inputFormats):
@@ -551,7 +552,7 @@ class Process(object):
         if self.formatgraph:
             for i in self.tool["inputs"]:
                 d = shortname(i["id"])
-                if d in builder.job and i.get("format") and builder.job[d]:
+                if d in builder.job and i.get("format"):
                     checkFormat(builder.job[d], builder.do_eval(i["format"]), self.formatgraph)
 
         builder.bindings.extend(builder.bind_input(self.inputs_record_schema, builder.job))
Fix #<I>: checkFormat fail for null input

Patched in the function checkFormat itself,
instead of the code which calls it