11462: Log ArgumentError in make_output_collection. Add test for CollectionCache.
[arvados.git] / sdk / cwl / arvados_cwl / __init__.py
index 1d2fa291ec1eee8953337f4ca1b97343ed7bcae2..ed784f56c55cfa1d0be2d0e8e78287a8e5c3115b 100644 (file)
@@ -247,10 +247,13 @@ class ArvCwlRunner(object):
                 raise Exception("Output source is not in keep or a literal")
             sp = k.split("/")
             srccollection = sp[0][5:]
-            reader = self.collection_cache.get(srccollection)
             try:
+                reader = self.collection_cache.get(srccollection)
                 srcpath = "/".join(sp[1:]) if len(sp) > 1 else "."
                 final.copy(srcpath, v.target, source_collection=reader, overwrite=False)
+            except arvados.errors.ArgumentError as e:
+                logger.error("Creating CollectionReader for '%s' '%s': %s", k, v, e)
+                raise
             except IOError as e:
                 logger.warn("While preparing output collection: %s", e)