diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
index 76c737cb9381..7ad9e0e48686 100644
--- a/src/libcamera/camera.cpp
+++ b/src/libcamera/camera.cpp
@@ -672,9 +672,11 @@ int Camera::configure(CameraConfiguration *config)
 	activeStreams_.clear();
 	for (const StreamConfiguration &cfg : *config) {
 		Stream *stream = cfg.stream();
-		if (!stream)
+		if (!stream) {
 			LOG(Camera, Fatal)
 				<< "Pipeline handler failed to update stream configuration";
+			return -EINVAL;
+		}
 
 		stream->configuration_ = cfg;
 		activeStreams_.insert(stream);
