diff --git a/http2/decoder/payload_decoders/altsvc_payload_decoder.cc b/http2/decoder/payload_decoders/altsvc_payload_decoder.cc
index 762a0ab..39d3fc9 100644
--- a/http2/decoder/payload_decoders/altsvc_payload_decoder.cc
+++ b/http2/decoder/payload_decoders/altsvc_payload_decoder.cc
@@ -31,7 +31,7 @@
   // Since the value doesn't come over the wire, only a programming bug should
   // result in reaching this point.
   int unknown = static_cast<int>(v);
-  HTTP2_BUG_V2(http2_bug_163_1)
+  HTTP2_BUG(http2_bug_163_1)
       << "Invalid AltSvcPayloadDecoder::PayloadState: " << unknown;
   return out << "AltSvcPayloadDecoder::PayloadState(" << unknown << ")";
 }
@@ -105,7 +105,7 @@
         payload_state_ = PayloadState::kMaybeDecodedStruct;
         continue;
     }
-    HTTP2_BUG_V2(http2_bug_163_2) << "PayloadState: " << payload_state_;
+    HTTP2_BUG(http2_bug_163_2) << "PayloadState: " << payload_state_;
   }
 }
 
diff --git a/http2/decoder/payload_decoders/data_payload_decoder.cc b/http2/decoder/payload_decoders/data_payload_decoder.cc
index 183bb42..5868d43 100644
--- a/http2/decoder/payload_decoders/data_payload_decoder.cc
+++ b/http2/decoder/payload_decoders/data_payload_decoder.cc
@@ -29,7 +29,7 @@
   // Since the value doesn't come over the wire, only a programming bug should
   // result in reaching this point.
   int unknown = static_cast<int>(v);
-  HTTP2_BUG_V2(http2_bug_174_1)
+  HTTP2_BUG(http2_bug_174_1)
       << "Invalid DataPayloadDecoder::PayloadState: " << unknown;
   return out << "DataPayloadDecoder::PayloadState(" << unknown << ")";
 }
@@ -121,7 +121,7 @@
       payload_state_ = PayloadState::kSkipPadding;
       return DecodeStatus::kDecodeInProgress;
   }
-  HTTP2_BUG_V2(http2_bug_174_2) << "PayloadState: " << payload_state_;
+  HTTP2_BUG(http2_bug_174_2) << "PayloadState: " << payload_state_;
   return DecodeStatus::kDecodeError;
 }
 
diff --git a/http2/decoder/payload_decoders/goaway_payload_decoder.cc b/http2/decoder/payload_decoders/goaway_payload_decoder.cc
index 4a006ce..a2cfd09 100644
--- a/http2/decoder/payload_decoders/goaway_payload_decoder.cc
+++ b/http2/decoder/payload_decoders/goaway_payload_decoder.cc
@@ -31,7 +31,7 @@
   // Since the value doesn't come over the wire, only a programming bug should
   // result in reaching this point.
   int unknown = static_cast<int>(v);
-  HTTP2_BUG_V2(http2_bug_167_1)
+  HTTP2_BUG(http2_bug_167_1)
       << "Invalid GoAwayPayloadDecoder::PayloadState: " << unknown;
   return out << "GoAwayPayloadDecoder::PayloadState(" << unknown << ")";
 }
@@ -115,7 +115,7 @@
         payload_state_ = PayloadState::kHandleFixedFieldsStatus;
         continue;
     }
-    HTTP2_BUG_V2(http2_bug_167_2) << "PayloadState: " << payload_state_;
+    HTTP2_BUG(http2_bug_167_2) << "PayloadState: " << payload_state_;
   }
 }
 
diff --git a/http2/decoder/payload_decoders/headers_payload_decoder.cc b/http2/decoder/payload_decoders/headers_payload_decoder.cc
index 3f3198b..a312fb9 100644
--- a/http2/decoder/payload_decoders/headers_payload_decoder.cc
+++ b/http2/decoder/payload_decoders/headers_payload_decoder.cc
@@ -33,7 +33,7 @@
   // Since the value doesn't come over the wire, only a programming bug should
   // result in reaching this point.
   int unknown = static_cast<int>(v);
-  HTTP2_BUG_V2(http2_bug_189_1)
+  HTTP2_BUG(http2_bug_189_1)
       << "Invalid HeadersPayloadDecoder::PayloadState: " << unknown;
   return out << "HeadersPayloadDecoder::PayloadState(" << unknown << ")";
 }
@@ -171,7 +171,7 @@
         payload_state_ = PayloadState::kReadPayload;
         continue;
     }
-    HTTP2_BUG_V2(http2_bug_189_2) << "PayloadState: " << payload_state_;
+    HTTP2_BUG(http2_bug_189_2) << "PayloadState: " << payload_state_;
   }
 }
 
diff --git a/http2/decoder/payload_decoders/priority_update_payload_decoder.cc b/http2/decoder/payload_decoders/priority_update_payload_decoder.cc
index 89e4732..bf78216 100644
--- a/http2/decoder/payload_decoders/priority_update_payload_decoder.cc
+++ b/http2/decoder/payload_decoders/priority_update_payload_decoder.cc
@@ -31,7 +31,7 @@
   // Since the value doesn't come over the wire, only a programming bug should
   // result in reaching this point.
   int unknown = static_cast<int>(v);
-  HTTP2_BUG_V2(http2_bug_173_1)
+  HTTP2_BUG(http2_bug_173_1)
       << "Invalid PriorityUpdatePayloadDecoder::PayloadState: " << unknown;
   return out << "PriorityUpdatePayloadDecoder::PayloadState(" << unknown << ")";
 }
@@ -118,7 +118,7 @@
         payload_state_ = PayloadState::kHandleFixedFieldsStatus;
         continue;
     }
-    HTTP2_BUG_V2(http2_bug_173_2) << "PayloadState: " << payload_state_;
+    HTTP2_BUG(http2_bug_173_2) << "PayloadState: " << payload_state_;
   }
 }
 
diff --git a/http2/decoder/payload_decoders/push_promise_payload_decoder.cc b/http2/decoder/payload_decoders/push_promise_payload_decoder.cc
index 9ebbbff..95fb5f5 100644
--- a/http2/decoder/payload_decoders/push_promise_payload_decoder.cc
+++ b/http2/decoder/payload_decoders/push_promise_payload_decoder.cc
@@ -155,7 +155,7 @@
         payload_state_ = PayloadState::kResumeDecodingPushPromiseFields;
         return status;
     }
-    HTTP2_BUG_V2(http2_bug_183_1) << "PayloadState: " << payload_state_;
+    HTTP2_BUG(http2_bug_183_1) << "PayloadState: " << payload_state_;
   }
 }
 
