diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp
index e561ce1d5d0e..24c3694de5fc 100644
--- a/src/libcamera/request.cpp
+++ b/src/libcamera/request.cpp
@@ -262,7 +262,9 @@ FrameBuffer *Request::findBuffer(const Stream *stream) const
  */
 void Request::complete()
 {
+	ASSERT(status_ == RequestPending);
 	ASSERT(!hasPendingBuffers());
+
 	status_ = cancelled_ ? RequestCancelled : RequestComplete;
 
 	LOG(Request, Debug)
