diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
index cb392ca3b7e7..bd73ff69c3da 100644
--- a/src/libcamera/camera.cpp
+++ b/src/libcamera/camera.cpp
@@ -728,6 +728,7 @@ Request *Camera::createRequest()
  * \return 0 on success or a negative error code otherwise
  * \retval -ENODEV The camera has been disconnected from the system
  * \retval -EACCES The camera is not running so requests can't be queued
+ * \retval -EINVAL The request does not contain any stream to capture from
  */
 int Camera::queueRequest(Request *request)
 {
@@ -743,6 +744,9 @@ int Camera::queueRequest(Request *request)
 		return ret;
 	}
 
+	if (request->empty())
+		return -EINVAL;
+
 	return pipe_->queueRequest(this, request);
 }
 
