diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 7ab3a5bfdccb..c5facaea16dd 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -771,6 +771,14 @@ void PipelineHandlerIPU3::stop(Camera *camera)
 	if (ret)
 		LOG(IPU3, Warning) << "Failed to stop camera " << camera->id();
 
+	/*
+	 * All requests must have completed before releaseing buffers.
+	 * \todo: Ensure all pipeline handlers guarantee queuedRequests is emtpy
+	 * at the end of stop().
+	 */
+	if (!data->queuedRequests_.empty())
+		LOG(IPU3, Fatal) << "There are still requests to complete.";
+
 	freeBuffers(camera);
 }
 
