diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 5204487684c2..11bf3af66ae6 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -916,6 +916,9 @@ int PipelineHandlerIPU3::registerCameras()
  */
 void IPU3CameraData::imguInputBufferReady(Buffer *buffer)
 {
+	if (buffer->status() != Buffer::BufferSuccess)
+		return;
+
 	cio2_.output_->queueBuffer(buffer);
 }
 
@@ -946,6 +949,9 @@ void IPU3CameraData::imguOutputBufferReady(Buffer *buffer)
  */
 void IPU3CameraData::cio2BufferReady(Buffer *buffer)
 {
+	if (buffer->status() != Buffer::BufferSuccess)
+		return;
+
 	imgu_->input_->queueBuffer(buffer);
 }
 
