diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index bae3072b177f..c27fe75577f5 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -927,6 +927,10 @@ int PipelineHandlerIPU3::registerCameras()
  */
 void IPU3CameraData::imguInputBufferReady(Buffer *buffer)
 {
+	/* \todo Handle buffer failures when state is set to BufferError. */
+	if (buffer->status() == Buffer::BufferCancelled)
+		return;
+
 	cio2_.output_->queueBuffer(buffer);
 }

@@ -957,6 +961,10 @@ void IPU3CameraData::imguOutputBufferReady(Buffer *buffer)
  */
 void IPU3CameraData::cio2BufferReady(Buffer *buffer)
 {
+	/* \todo Handle buffer failures when state is set to BufferError. */
+	if (buffer->status() == Buffer::BufferCancelled)
+		return;
+
 	imgu_->input_->queueBuffer(buffer);
 }

