diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
index 63b1f7729937..9c432adb1d97 100644
--- a/src/libcamera/camera.cpp
+++ b/src/libcamera/camera.cpp
@@ -931,8 +931,10 @@ int Camera::start()
 		if (allocator_ && !allocator_->buffers(stream).empty())
 			continue;
 
-		p_->pipe_->invokeMethod(&PipelineHandler::importFrameBuffers,
-					ConnectionTypeDirect, this, stream);
+		ret = p_->pipe_->invokeMethod(&PipelineHandler::importFrameBuffers,
+					      ConnectionTypeDirect, this, stream);
+		if (ret < 0)
+			return ret;
 	}
 
 	ret = p_->pipe_->invokeMethod(&PipelineHandler::start,
