diff --git a/quiche/quic/core/congestion_control/bbr2_sender.cc b/quiche/quic/core/congestion_control/bbr2_sender.cc
index 71b8f12..aa72f2a 100644
--- a/quiche/quic/core/congestion_control/bbr2_sender.cc
+++ b/quiche/quic/core/congestion_control/bbr2_sender.cc
@@ -16,6 +16,7 @@
 #include "quiche/quic/platform/api/quic_flag_utils.h"
 #include "quiche/quic/platform/api/quic_flags.h"
 #include "quiche/quic/platform/api/quic_logging.h"
+#include "quiche/common/platform/api/quiche_logging.h"
 #include "quiche/common/print_elements.h"
 
 namespace quic {
@@ -221,7 +222,7 @@
     case Bbr2Mode::PROBE_RTT:
       return probe_rtt_.GetCwndLimits();
     default:
-      QUIC_NOTREACHED();
+      QUICHE_NOTREACHED();
       return Unlimited<QuicByteCount>();
   }
 }
diff --git a/quiche/quic/core/http/quic_send_control_stream.h b/quiche/quic/core/http/quic_send_control_stream.h
index c606ff5..18ee01f 100644
--- a/quiche/quic/core/http/quic_send_control_stream.h
+++ b/quiche/quic/core/http/quic_send_control_stream.h
@@ -10,6 +10,7 @@
 #include "quiche/quic/core/quic_types.h"
 #include "quiche/quic/platform/api/quic_export.h"
 #include "quiche/quic/platform/api/quic_logging.h"
+#include "quiche/common/platform/api/quiche_logging.h"
 
 namespace quic {
 
@@ -46,7 +47,7 @@
 
   // The send control stream is write unidirectional, so this method should
   // never be called.
-  void OnDataAvailable() override { QUIC_NOTREACHED(); }
+  void OnDataAvailable() override { QUICHE_NOTREACHED(); }
 
  private:
   // Track if a settings frame is already sent.
diff --git a/quiche/quic/core/qpack/qpack_header_table.cc b/quiche/quic/core/qpack/qpack_header_table.cc
index d0386f2..d5b834d 100644
--- a/quiche/quic/core/qpack/qpack_header_table.cc
+++ b/quiche/quic/core/qpack/qpack_header_table.cc
@@ -7,6 +7,7 @@
 #include "absl/strings/string_view.h"
 #include "quiche/quic/core/qpack/qpack_static_table.h"
 #include "quiche/quic/platform/api/quic_logging.h"
+#include "quiche/common/platform/api/quiche_logging.h"
 
 namespace quic {
 
@@ -232,7 +233,7 @@
   }
 
   // |observer| must have been registered.
-  QUIC_NOTREACHED();
+  QUICHE_NOTREACHED();
 }
 
 }  // namespace quic
diff --git a/quiche/quic/core/qpack/qpack_send_stream.h b/quiche/quic/core/qpack/qpack_send_stream.h
index 2d8f3f1..8c9a764 100644
--- a/quiche/quic/core/qpack/qpack_send_stream.h
+++ b/quiche/quic/core/qpack/qpack_send_stream.h
@@ -11,6 +11,7 @@
 #include "quiche/quic/core/qpack/qpack_stream_sender_delegate.h"
 #include "quiche/quic/core/quic_stream.h"
 #include "quiche/quic/platform/api/quic_export.h"
+#include "quiche/common/platform/api/quiche_logging.h"
 
 namespace quic {
 
@@ -36,7 +37,7 @@
 
   // The send QPACK stream is write unidirectional, so this method
   // should never be called.
-  void OnDataAvailable() override { QUIC_NOTREACHED(); }
+  void OnDataAvailable() override { QUICHE_NOTREACHED(); }
 
   // Writes the instructions to peer. The stream type will be sent
   // before the first instruction so that the peer can open an qpack stream.
diff --git a/quiche/quic/core/quic_crypto_client_handshaker.cc b/quiche/quic/core/quic_crypto_client_handshaker.cc
index 4ec9b48..14f08e4 100644
--- a/quiche/quic/core/quic_crypto_client_handshaker.cc
+++ b/quiche/quic/core/quic_crypto_client_handshaker.cc
@@ -275,7 +275,7 @@
         DoInitializeServerConfigUpdate(cached);
         break;
       case STATE_NONE:
-        QUIC_NOTREACHED();
+        QUICHE_NOTREACHED();
         return;
       case STATE_CONNECTION_CLOSED:
         rv = QUIC_FAILURE;
diff --git a/quiche/quic/core/quic_stream.cc b/quiche/quic/core/quic_stream.cc
index 90b1e29..c07f2de 100644
--- a/quiche/quic/core/quic_stream.cc
+++ b/quiche/quic/core/quic_stream.cc
@@ -150,7 +150,7 @@
 void PendingStream::ResetWithError(QuicResetStreamError /*error*/) {
   // Currently PendingStream is only read-unidirectional. It shouldn't send
   // Reset.
-  QUIC_NOTREACHED();
+  QUICHE_NOTREACHED();
 }
 
 void PendingStream::OnUnrecoverableError(QuicErrorCode error,
diff --git a/quiche/quic/platform/api/quic_logging.h b/quiche/quic/platform/api/quic_logging.h
index 442e39c..884c78a 100644
--- a/quiche/quic/platform/api/quic_logging.h
+++ b/quiche/quic/platform/api/quic_logging.h
@@ -25,9 +25,6 @@
 #define QUIC_PREDICT_FALSE QUICHE_PREDICT_FALSE
 #define QUIC_PREDICT_TRUE QUICHE_PREDICT_TRUE
 
-// This is a noop in release build.
-#define QUIC_NOTREACHED QUICHE_NOTREACHED
-
 #define QUIC_PLOG QUICHE_PLOG
 
 #define QUIC_DLOG_INFO_IS_ON QUICHE_DLOG_INFO_IS_ON
diff --git a/quiche/quic/qbone/qbone_session_base.cc b/quiche/quic/qbone/qbone_session_base.cc
index 95bd7c7..3755bb5 100644
--- a/quiche/quic/qbone/qbone_session_base.cc
+++ b/quiche/quic/qbone/qbone_session_base.cc
@@ -18,6 +18,7 @@
 #include "quiche/quic/qbone/platform/icmp_packet.h"
 #include "quiche/quic/qbone/qbone_constants.h"
 #include "quiche/common/platform/api/quiche_command_line_flags.h"
+#include "quiche/common/platform/api/quiche_logging.h"
 #include "quiche/common/platform/api/quiche_mem_slice.h"
 #include "quiche/common/quiche_buffer_allocator.h"
 
@@ -92,7 +93,7 @@
 }
 
 QuicStream* QboneSessionBase::CreateIncomingStream(PendingStream* /*pending*/) {
-  QUIC_NOTREACHED();
+  QUICHE_NOTREACHED();
   return nullptr;
 }
 
diff --git a/quiche/quic/tools/quic_transport_simple_server_session.cc b/quiche/quic/tools/quic_transport_simple_server_session.cc
index fcd70ce..9c8c696 100644
--- a/quiche/quic/tools/quic_transport_simple_server_session.cc
+++ b/quiche/quic/tools/quic_transport_simple_server_session.cc
@@ -15,6 +15,7 @@
 #include "quiche/quic/quic_transport/quic_transport_protocol.h"
 #include "quiche/quic/quic_transport/quic_transport_stream.h"
 #include "quiche/quic/tools/web_transport_test_visitors.h"
+#include "quiche/common/platform/api/quiche_logging.h"
 #include "quiche/common/platform/api/quiche_mem_slice.h"
 #include "quiche/common/quiche_buffer_allocator.h"
 
@@ -62,7 +63,7 @@
                   [this](const std::string& s) { this->EchoStreamBack(s); }));
           break;
         default:
-          QUIC_NOTREACHED();
+          QUICHE_NOTREACHED();
           break;
       }
       break;
diff --git a/quiche/quic/tools/web_transport_test_visitors.h b/quiche/quic/tools/web_transport_test_visitors.h
index 07d3161..e5b7fef 100644
--- a/quiche/quic/tools/web_transport_test_visitors.h
+++ b/quiche/quic/tools/web_transport_test_visitors.h
@@ -9,6 +9,7 @@
 
 #include "quiche/quic/core/web_transport_interface.h"
 #include "quiche/quic/platform/api/quic_logging.h"
+#include "quiche/common/platform/api/quiche_logging.h"
 #include "quiche/common/platform/api/quiche_mem_slice.h"
 #include "quiche/common/quiche_circular_deque.h"
 #include "quiche/common/simple_buffer_allocator.h"
@@ -123,7 +124,7 @@
     }
   }
 
-  void OnCanWrite() override { QUIC_NOTREACHED(); }
+  void OnCanWrite() override { QUICHE_NOTREACHED(); }
 
   void OnResetStreamReceived(WebTransportStreamError /*error*/) override {}
   void OnStopSendingReceived(WebTransportStreamError /*error*/) override {}
@@ -143,7 +144,7 @@
                                              const std::string& data)
       : stream_(stream), data_(data) {}
 
-  void OnCanRead() override { QUIC_NOTREACHED(); }
+  void OnCanRead() override { QUICHE_NOTREACHED(); }
   void OnCanWrite() override {
     if (data_.empty()) {
       return;
