diff --git a/src/libcamera/base/thread.cpp b/src/libcamera/base/thread.cpp
index 6bda9d1462f5..6ead1d7c12d0 100644
--- a/src/libcamera/base/thread.cpp
+++ b/src/libcamera/base/thread.cpp
@@ -530,6 +530,7 @@ void Thread::postMessage(std::unique_ptr<Message> msg, Object *receiver)
 	msg->receiver_ = receiver;
 
 	ASSERT(data_ == receiver->thread()->data_);
+	ASSERT(data_ != mainThread.data_);
 
 	MutexLocker locker(data_->messages_.mutex_);
 	data_->messages_.list_.push_back(std::move(msg));
