diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
index 938f21fe80ef8ceb..ba8638009992170f 100644
--- a/src/libcamera/camera.cpp
+++ b/src/libcamera/camera.cpp
@@ -253,6 +253,10 @@ Camera::streamConfiguration(std::set<Stream *> &streams)
 	if (!stateIsAtleast(Free) || !streams.size())
 		return std::map<Stream *, StreamConfiguration>{};
 
+	for (Stream *stream : streams)
+		if (streams_.find(stream) == streams_.end())
+			return std::map<Stream *, StreamConfiguration>{};
+
 	return pipe_->streamConfiguration(this, streams);
 }
 
@@ -290,6 +294,10 @@ int Camera::configureStreams(std::map<Stream *, StreamConfiguration> &config)
 		return -EINVAL;
 	}
 
+	for (auto const &iter : config)
+		if (streams_.find(iter.first) == streams_.end())
+			return -EINVAL;
+
 	ret = pipe_->configureStreams(this, config);
 	if (ret)
 		return ret;
