diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
index 2786e29e1ed7..03b8a4210046 100644
--- a/src/v4l2/v4l2_camera_proxy.cpp
+++ b/src/v4l2/v4l2_camera_proxy.cpp
@@ -698,6 +698,8 @@ int V4L2CameraProxy::vidioc_dqbuf(V4L2CameraFile *file, struct v4l2_buffer *arg,
 	buf.length = sizeimage_;
 	*arg = buf;
 
+	buf.flags &= ~V4L2_BUF_FLAG_ERROR;
+
 	currentBuf_ = (currentBuf_ + 1) % bufferCount_;
 
 	uint64_t data;
@@ -778,7 +780,7 @@ int V4L2CameraProxy::vidioc_streamoff(V4L2CameraFile *file, int *arg)
 
 	for (struct v4l2_buffer &buf : buffers_)
 		buf.flags &= ~(V4L2_BUF_FLAG_QUEUED | V4L2_BUF_FLAG_DONE |
-			       V4L2_BUF_FLAG_PREPARED);
+			       V4L2_BUF_FLAG_ERROR | V4L2_BUF_FLAG_PREPARED);
 
 	return ret;
 }
