diff --git a/roles/float-base/files/node-exporter-scripts/smartmon.py b/roles/float-base/files/node-exporter-scripts/smartmon.py
index 7cfb6c1fdf78260b3107d6206100b37b8d11d8ff..ebd3299bf98c921334cb0312f3e836233f8ea629 100644
--- a/roles/float-base/files/node-exporter-scripts/smartmon.py
+++ b/roles/float-base/files/node-exporter-scripts/smartmon.py
@@ -221,6 +221,9 @@ def collect_self_test_status(device, data):
            (test['lifetime_hours'] > most_recent_test_by_type[key]['lifetime_hours']):
             most_recent_test_by_type[key] = test
     for test in most_recent_test_by_type.values():
+        if 'passed' not in test['status']:
+            # Possibly still ongoing.
+            continue
         labels = {'test': to_label_value(test['type']['string'])}
         labels.update(device.labels)
         yield Gauge('self_test_status', labels, test['status']['passed'])