diff --git a/src/libcamera/device_enumerator.cpp b/src/libcamera/device_enumerator.cpp
index f2e055de..42b5ba6c 100644
--- a/src/libcamera/device_enumerator.cpp
+++ b/src/libcamera/device_enumerator.cpp
@@ -101,8 +101,14 @@ bool DeviceMatch::match(const MediaDevice *device) const
 
 		for (const MediaEntity *entity : device->entities()) {
 			if (name == entity->name()) {
-				found = true;
-				break;
+				if (!entity->deviceNode().empty()) {
+					found = true;
+					break;
+				} else {
+					LOG(DeviceEnumerator, Debug)
+						<< "Skip " << entity->name()
+						<< ": no device node";
+				}
 			}
 		}
 
