diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp
index 8b6057df..910c0f83 100644
--- a/src/gstreamer/gstlibcamerasrc.cpp
+++ b/src/gstreamer/gstlibcamerasrc.cpp
@@ -375,9 +375,9 @@ gst_libcamera_src_task_enter(GstTask *task, [[maybe_unused]] GThread *thread,
 
 	/* Generate the stream configurations, there should be one per pad. */
 	state->config_ = state->cam_->generateConfiguration(roles);
-	if (state->config_ == nullptr) {
+	if (state->config_ == nullptr && state->config_->size() == state->srcpads_.size()) {
 		GST_ELEMENT_ERROR(self, RESOURCE, SETTINGS,
-				  ("Failed to generate camera configuration from roles"),
+				  ("Failed to generate camera configuration from"),
 				  ("Camera::generateConfiguration() returned nullptr"));
 		gst_task_stop(task);
 		return;
