diff --git a/invenio_utilities_tuw/cli/drafts.py b/invenio_utilities_tuw/cli/drafts.py
index 5628728d3c41b7761311c3695f243fbc6d706750..8af203af262d6288acf7ca106e7dd8e119f36657 100644
--- a/invenio_utilities_tuw/cli/drafts.py
+++ b/invenio_utilities_tuw/cli/drafts.py
@@ -339,7 +339,16 @@ def add_files(filepaths, pid, pid_type, user):
         )
         sys.exit(1)
 
-    # TODO: this fails if a file with the same name already exists
+    # check for existing duplicates
+    files = list(file_service.list_files(id_=recid, identity=identity).entries())
+    existing_file_keys = [e["key"] for e in files]
+    if any([k for k in keys if k in existing_file_keys]):
+        click.secho(
+            "aborting: reuse of existing file names detected", fg="yellow", err=True
+        )
+        sys.exit(1)
+
+    # if all went well so far, continue on
     file_service.init_files(
         id_=recid, identity=identity, data=[{"key": basename(fp)} for fp in paths]
     )