diff --git a/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc b/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc
index 191a285..54c4031 100644
--- a/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc
+++ b/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc
@@ -117,6 +117,8 @@
       return rtclog::IceCandidatePairConfig::DESTROYED;
     case IceCandidatePairConfigType::kSelected:
       return rtclog::IceCandidatePairConfig::SELECTED;
+    case IceCandidatePairConfigType::kNumValues:
+      RTC_NOTREACHED();
   }
   RTC_NOTREACHED();
   return rtclog::IceCandidatePairConfig::ADDED;
@@ -125,6 +127,8 @@
 rtclog::IceCandidatePairConfig::IceCandidateType ConvertIceCandidateType(
     IceCandidateType type) {
   switch (type) {
+    case IceCandidateType::kUnknown:
+      return rtclog::IceCandidatePairConfig::UNKNOWN_CANDIDATE_TYPE;
     case IceCandidateType::kLocal:
       return rtclog::IceCandidatePairConfig::LOCAL;
     case IceCandidateType::kStun:
@@ -133,8 +137,8 @@
       return rtclog::IceCandidatePairConfig::PRFLX;
     case IceCandidateType::kRelay:
       return rtclog::IceCandidatePairConfig::RELAY;
-    case IceCandidateType::kUnknown:
-      return rtclog::IceCandidatePairConfig::UNKNOWN_CANDIDATE_TYPE;
+    case IceCandidateType::kNumValues:
+      RTC_NOTREACHED();
   }
   RTC_NOTREACHED();
   return rtclog::IceCandidatePairConfig::UNKNOWN_CANDIDATE_TYPE;
@@ -143,6 +147,8 @@
 rtclog::IceCandidatePairConfig::Protocol ConvertIceCandidatePairProtocol(
     IceCandidatePairProtocol protocol) {
   switch (protocol) {
+    case IceCandidatePairProtocol::kUnknown:
+      return rtclog::IceCandidatePairConfig::UNKNOWN_PROTOCOL;
     case IceCandidatePairProtocol::kUdp:
       return rtclog::IceCandidatePairConfig::UDP;
     case IceCandidatePairProtocol::kTcp:
@@ -151,8 +157,8 @@
       return rtclog::IceCandidatePairConfig::SSLTCP;
     case IceCandidatePairProtocol::kTls:
       return rtclog::IceCandidatePairConfig::TLS;
-    case IceCandidatePairProtocol::kUnknown:
-      return rtclog::IceCandidatePairConfig::UNKNOWN_PROTOCOL;
+    case IceCandidatePairProtocol::kNumValues:
+      RTC_NOTREACHED();
   }
   RTC_NOTREACHED();
   return rtclog::IceCandidatePairConfig::UNKNOWN_PROTOCOL;
@@ -162,12 +168,14 @@
 ConvertIceCandidatePairAddressFamily(
     IceCandidatePairAddressFamily address_family) {
   switch (address_family) {
+    case IceCandidatePairAddressFamily::kUnknown:
+      return rtclog::IceCandidatePairConfig::UNKNOWN_ADDRESS_FAMILY;
     case IceCandidatePairAddressFamily::kIpv4:
       return rtclog::IceCandidatePairConfig::IPV4;
     case IceCandidatePairAddressFamily::kIpv6:
       return rtclog::IceCandidatePairConfig::IPV6;
-    case IceCandidatePairAddressFamily::kUnknown:
-      return rtclog::IceCandidatePairConfig::UNKNOWN_ADDRESS_FAMILY;
+    case IceCandidatePairAddressFamily::kNumValues:
+      RTC_NOTREACHED();
   }
   RTC_NOTREACHED();
   return rtclog::IceCandidatePairConfig::UNKNOWN_ADDRESS_FAMILY;
@@ -176,6 +184,8 @@
 rtclog::IceCandidatePairConfig::NetworkType ConvertIceCandidateNetworkType(
     IceCandidateNetworkType network_type) {
   switch (network_type) {
+    case IceCandidateNetworkType::kUnknown:
+      return rtclog::IceCandidatePairConfig::UNKNOWN_NETWORK_TYPE;
     case IceCandidateNetworkType::kEthernet:
       return rtclog::IceCandidatePairConfig::ETHERNET;
     case IceCandidateNetworkType::kLoopback:
@@ -186,8 +196,8 @@
       return rtclog::IceCandidatePairConfig::VPN;
     case IceCandidateNetworkType::kCellular:
       return rtclog::IceCandidatePairConfig::CELLULAR;
-    case IceCandidateNetworkType::kUnknown:
-      return rtclog::IceCandidatePairConfig::UNKNOWN_NETWORK_TYPE;
+    case IceCandidateNetworkType::kNumValues:
+      RTC_NOTREACHED();
   }
   RTC_NOTREACHED();
   return rtclog::IceCandidatePairConfig::UNKNOWN_NETWORK_TYPE;
@@ -204,6 +214,8 @@
       return rtclog::IceCandidatePairEvent::CHECK_RESPONSE_SENT;
     case IceCandidatePairEventType::kCheckResponseReceived:
       return rtclog::IceCandidatePairEvent::CHECK_RESPONSE_RECEIVED;
+    case IceCandidatePairEventType::kNumValues:
+      RTC_NOTREACHED();
   }
   RTC_NOTREACHED();
   return rtclog::IceCandidatePairEvent::CHECK_SENT;
diff --git a/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h b/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h
index b04ad4e..ac646ee 100644
--- a/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h
+++ b/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h
@@ -22,6 +22,7 @@
   kCheckReceived,
   kCheckResponseSent,
   kCheckResponseReceived,
+  kNumValues,
 };
 
 class RtcEventIceCandidatePair final : public RtcEvent {
diff --git a/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h b/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h
index 62d39d5..0a195da 100644
--- a/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h
+++ b/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h
@@ -22,39 +22,44 @@
   kUpdated,
   kDestroyed,
   kSelected,
+  kNumValues,
 };
 
 // TODO(qingsi): Change the names of candidate types to "host", "srflx", "prflx"
 // and "relay" after the naming is spec-compliant in the signaling part
 enum class IceCandidateType {
+  kUnknown,
   kLocal,
   kStun,
   kPrflx,
   kRelay,
-  kUnknown,
+  kNumValues,
 };
 
 enum class IceCandidatePairProtocol {
+  kUnknown,
   kUdp,
   kTcp,
   kSsltcp,
   kTls,
-  kUnknown,
+  kNumValues,
 };
 
 enum class IceCandidatePairAddressFamily {
+  kUnknown,
   kIpv4,
   kIpv6,
-  kUnknown,
+  kNumValues,
 };
 
 enum class IceCandidateNetworkType {
+  kUnknown,
   kEthernet,
   kLoopback,
   kWifi,
   kVpn,
   kCellular,
-  kUnknown,
+  kNumValues,
 };
 
 class IceCandidatePairDescription {
