diff --git a/services/inputflinger/dispatcher/InputDispatcher.cpp b/services/inputflinger/dispatcher/InputDispatcher.cpp
index 48219bd..589e694 100644
--- a/services/inputflinger/dispatcher/InputDispatcher.cpp
+++ b/services/inputflinger/dispatcher/InputDispatcher.cpp
@@ -838,13 +838,6 @@
         if (!inserted) {
             return Error() << "Duplicate entry for " << info;
         }
-        if (info.layoutParamsFlags.test(WindowInfo::Flag::SECURE) &&
-            !info.inputConfig.test(WindowInfo::InputConfig::NOT_VISIBLE) &&
-            !info.inputConfig.test(WindowInfo::InputConfig::SENSITIVE_FOR_TRACING)) {
-            return Error()
-                    << "Window with FLAG_SECURE does not set InputConfig::SENSITIVE_FOR_TRACING: "
-                    << info;
-        }
     }
     return {};
 }
diff --git a/services/inputflinger/dispatcher/trace/InputTracer.cpp b/services/inputflinger/dispatcher/trace/InputTracer.cpp
index f8ee95f..415b696 100644
--- a/services/inputflinger/dispatcher/trace/InputTracer.cpp
+++ b/services/inputflinger/dispatcher/trace/InputTracer.cpp
@@ -86,8 +86,16 @@
         // This is a global monitor, assume its target is the system.
         return {.uid = gui::Uid{AID_SYSTEM}, .isSecureWindow = false};
     }
-    const bool isSensitiveTarget = target.windowHandle->getInfo()->inputConfig.test(
-            gui::WindowInfo::InputConfig::SENSITIVE_FOR_TRACING);
+    const auto& info = *target.windowHandle->getInfo();
+    const bool isSensitiveTarget =
+            info.inputConfig.test(gui::WindowInfo::InputConfig::SENSITIVE_FOR_TRACING);
+
+    // All FLAG_SECURE targets must be marked as sensitive for tracing.
+    if (info.layoutParamsFlags.test(gui::WindowInfo::Flag::SECURE) && !isSensitiveTarget) {
+        LOG(FATAL)
+                << "Input target with FLAG_SECURE does not set InputConfig::SENSITIVE_FOR_TRACING: "
+                << info;
+    }
     return {target.windowHandle->getInfo()->ownerUid, isSensitiveTarget};
 }
 
