diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index 02a98f594..e20f08b67 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -1880,16 +1880,6 @@ bool SimplePipelineHandler::matchDevice(std::shared_ptr<MediaDevice> media,
 		}
 	}
 
-	if (info.swIspEnabled) {
-		/*
-		 * When the software ISP is enabled, the simple pipeline handler
-		 * exposes the raw stream, giving a total of two streams. This
-		 * is mutually exclusive with the presence of a converter.
-		 */
-		ASSERT(!converter_);
-		numStreams = 2;
-	}
-
 	swIspEnabled_ = info.swIspEnabled;
 	const GlobalConfiguration &configuration = cameraManager()->_d()->configuration();
 	for (const ValueNode &entry :
@@ -1905,6 +1895,16 @@ bool SimplePipelineHandler::matchDevice(std::shared_ptr<MediaDevice> media,
 		}
 	}
 
+	if (swIspEnabled_) {
+		/*
+		 * When the software ISP is enabled, the simple pipeline handler
+		 * exposes the raw stream, giving a total of two streams. This
+		 * is mutually exclusive with the presence of a converter.
+		 */
+		ASSERT(!converter_);
+		numStreams = 2;
+	}
+
 	/* Locate the sensors. */
 	std::vector<MediaEntity *> sensors = locateSensors(media.get());
 	if (sensors.empty()) {
