diff --git a/src/buffer.cpp b/src/buffer.cpp
index 0254cac..3af1125 100644
--- a/src/buffer.cpp
+++ b/src/buffer.cpp
@@ -269,6 +269,36 @@
                     currentUeRegionSize, ueLogData.size()));
 }
 
+bool BufferImpl::checkForOverflowAndAcknowledge()
+{
+    // Ensure cachedBufferHeader is up-to-date
+    readBufferHeader();
+
+    uint32_t biosSideFlags =
+        boost::endian::little_to_native(cachedBufferHeader.biosFlags);
+    uint32_t bmcSideFlags =
+        boost::endian::little_to_native(cachedBufferHeader.bmcFlags);
+
+    // Design: (BIOS_switch ^ BMC_switch) & BIT1 == BIT1 -> unlogged overflow
+    // This means if the overflow bit differs, there's an
+    // unacknowledged overflow.
+    if ((biosSideFlags ^ bmcSideFlags) &
+        static_cast<uint32_t>(BufferFlags::overflow))
+    {
+        // Overflow incident has occurred and BMC has not acknowledged it.
+        // Toggle BMC's view of the overflow flag to acknowledge.
+        uint32_t newBmcFlags =
+            bmcSideFlags ^ static_cast<uint32_t>(BufferFlags::overflow);
+        updateBmcFlags(newBmcFlags);
+
+        // Overflow was detected and acknowledged
+        return true;
+    }
+
+    // No new overflow incident or already acknowledged
+    return false;
+}
+
 EntryPair BufferImpl::readEntry()
 {
     struct QueueEntryHeader entryHeader = readEntryHeader();
diff --git a/src/main.cpp b/src/main.cpp
index 4465185..eb15677 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -79,6 +79,13 @@
             bufferInterface->updateBmcFlags(newBmcFlags);
         }
 
+        if (bufferInterface->checkForOverflowAndAcknowledge())
+        {
+            stdplus::print(
+                stdout,
+                "[WARN] Buffer overflow had occured and has been acked\n");
+        }
+
         std::vector<EntryPair> entryPairs = bufferInterface->readErrorLogs();
         for (const auto& [entryHeader, entry] : entryPairs)
         {
