diff --git a/src/taggingbackends/explorer.py b/src/taggingbackends/explorer.py
index 5ee4a0b3260528359c7a52ab9a98ac9cd47863b0..11bcae262d173edd9e0dfeb80cbdad6e3ab1bdde 100644
--- a/src/taggingbackends/explorer.py
+++ b/src/taggingbackends/explorer.py
@@ -477,6 +477,20 @@ run `poetry add {pkg}` from directory: \n
                     logging.warning("multiple label files found")
                 found += 1
         assert 0 < len(input_files)
+        if labels.metadata and 'filename' in labels.metadata:
+            # ensure the file listed in the metadata comes first in the
+            # input_files list
+            primary_input = labels.metadata['filename']
+            for file in input_files:
+                if file.name == primary_input:
+                    primary_input = file
+                    break
+            if isinstance(primary_input, str):
+                logging.warning(f'cannot find file: {primary_input}')
+            elif input_files[0] is not primary_input:
+                input_files = [file for file in input_files if file is not primary_input]
+                input_files.insert(0, primary_input)
+        #
         labels.tracking = input_files
         #
         if not labels.metadata: