diff --git a/common/platform/api/quiche_error_code_wrappers.h b/common/platform/api/quiche_error_code_wrappers.h
deleted file mode 100644
index ef08dce..0000000
--- a/common/platform/api/quiche_error_code_wrappers.h
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (c) 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef QUICHE_COMMON_PLATFORM_API_QUICHE_ERROR_CODE_WRAPPERS_H_
-#define QUICHE_COMMON_PLATFORM_API_QUICHE_ERROR_CODE_WRAPPERS_H_
-
-#include "quiche_platform_impl/quiche_error_code_wrappers_impl.h"
-
-// TODO(vasilvv): ensure WRITE_STATUS_MSG_TOO_BIG works everywhere and remove
-// this.
-#define QUICHE_EMSGSIZE QUICHE_EMSGSIZE_IMPL
-
-#endif  // QUICHE_COMMON_PLATFORM_API_QUICHE_ERROR_CODE_WRAPPERS_H_
diff --git a/quic/core/batch_writer/quic_batch_writer_base.h b/quic/core/batch_writer/quic_batch_writer_base.h
index e7d1f12..bca8646 100644
--- a/quic/core/batch_writer/quic_batch_writer_base.h
+++ b/quic/core/batch_writer/quic_batch_writer_base.h
@@ -38,6 +38,10 @@
 
   void SetWritable() final { write_blocked_ = false; }
 
+  absl::optional<int> MessageTooBigErrorCode() const override {
+    return EMSGSIZE;
+  }
+
   QuicByteCount GetMaxPacketSize(
       const QuicSocketAddress& /*peer_address*/) const final {
     return kMaxOutgoingPacketSize;
diff --git a/quic/core/http/end_to_end_test.cc b/quic/core/http/end_to_end_test.cc
index 95b274a..b995d39 100644
--- a/quic/core/http/end_to_end_test.cc
+++ b/quic/core/http/end_to_end_test.cc
@@ -32,7 +32,6 @@
 #include "quic/core/quic_types.h"
 #include "quic/core/quic_utils.h"
 #include "quic/platform/api/quic_epoll.h"
-#include "quic/platform/api/quic_error_code_wrappers.h"
 #include "quic/platform/api/quic_expect_bug.h"
 #include "quic/platform/api/quic_flags.h"
 #include "quic/platform/api/quic_logging.h"
@@ -5614,7 +5613,7 @@
         TypeByteIsServerHello(type_byte)) {
       QUIC_DVLOG(1) << "Return write error for packet containing ServerHello";
       error_returned_ = true;
-      return WriteResult(WRITE_STATUS_ERROR, QUIC_EMSGSIZE);
+      return WriteResult(WRITE_STATUS_ERROR, *MessageTooBigErrorCode());
     }
     return result;
   }
@@ -5698,7 +5697,7 @@
     } else if (!error_returned_) {
       QUIC_DVLOG(1) << "Return write error for short header packet";
       error_returned_ = true;
-      return WriteResult(WRITE_STATUS_ERROR, QUIC_EMSGSIZE);
+      return WriteResult(WRITE_STATUS_ERROR, *MessageTooBigErrorCode());
     }
     return QuicPacketWriterWrapper::WritePacket(buffer, buf_len, self_address,
                                                 peer_address, options);
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index 0cc3296..0716c52 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -39,7 +39,6 @@
 #include "quic/core/quic_utils.h"
 #include "quic/platform/api/quic_bug_tracker.h"
 #include "quic/platform/api/quic_client_stats.h"
-#include "quic/platform/api/quic_error_code_wrappers.h"
 #include "quic/platform/api/quic_exported_stats.h"
 #include "quic/platform/api/quic_flag_utils.h"
 #include "quic/platform/api/quic_flags.h"
@@ -3089,7 +3088,7 @@
         packet.encrypted_buffer.data(), packet.encrypted_buffer.length(),
         packet.self_address.host(), packet.peer_address, per_packet_options_);
     QUIC_DVLOG(1) << ENDPOINT << "Sending buffered packet, result: " << result;
-    if (IsMsgTooBig(result) &&
+    if (IsMsgTooBig(writer_, result) &&
         packet.encrypted_buffer.length() > long_term_mtu_) {
       // When MSG_TOO_BIG is returned, the system typically knows what the
       // actual MTU is, so there is no need to probe further.
@@ -3530,7 +3529,7 @@
 
   // In some cases, an MTU probe can cause EMSGSIZE. This indicates that the
   // MTU discovery is permanently unsuccessful.
-  if (IsMsgTooBig(result)) {
+  if (IsMsgTooBig(writer_, result)) {
     if (is_mtu_discovery) {
       // When MSG_TOO_BIG is returned, the system typically knows what the
       // actual MTU is, so there is no need to probe further.
@@ -3824,9 +3823,12 @@
   }
 }
 
-bool QuicConnection::IsMsgTooBig(const WriteResult& result) {
+bool QuicConnection::IsMsgTooBig(const QuicPacketWriter* writer,
+                                 const WriteResult& result) {
+  absl::optional<int> writer_error_code = writer->MessageTooBigErrorCode();
   return (result.status == WRITE_STATUS_MSG_TOO_BIG) ||
-         (IsWriteError(result.status) && result.error_code == QUIC_EMSGSIZE);
+         (writer_error_code.has_value() && IsWriteError(result.status) &&
+          result.error_code == *writer_error_code);
 }
 
 bool QuicConnection::ShouldDiscardPacket(EncryptionLevel encryption_level) {
@@ -3883,22 +3885,20 @@
   const std::string error_details = absl::StrCat(
       "Write failed with error: ", error_code, " (", strerror(error_code), ")");
   QUIC_LOG_FIRST_N(ERROR, 2) << ENDPOINT << error_details;
-  switch (error_code) {
-    case QUIC_EMSGSIZE:
-      CloseConnection(QUIC_PACKET_WRITE_ERROR, error_details,
-                      ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
-      break;
-    default:
-      // We can't send an error as the socket is presumably borked.
-      if (version().HasIetfInvariantHeader()) {
-        QUIC_CODE_COUNT(quic_tear_down_local_connection_on_write_error_ietf);
-      } else {
-        QUIC_CODE_COUNT(
-            quic_tear_down_local_connection_on_write_error_non_ietf);
-      }
-      CloseConnection(QUIC_PACKET_WRITE_ERROR, error_details,
-                      ConnectionCloseBehavior::SILENT_CLOSE);
+  absl::optional<int> writer_error_code = writer_->MessageTooBigErrorCode();
+  if (writer_error_code.has_value() && error_code == *writer_error_code) {
+    CloseConnection(QUIC_PACKET_WRITE_ERROR, error_details,
+                    ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
+    return;
   }
+  // We can't send an error as the socket is presumably borked.
+  if (version().HasIetfInvariantHeader()) {
+    QUIC_CODE_COUNT(quic_tear_down_local_connection_on_write_error_ietf);
+  } else {
+    QUIC_CODE_COUNT(quic_tear_down_local_connection_on_write_error_non_ietf);
+  }
+  CloseConnection(QUIC_PACKET_WRITE_ERROR, error_details,
+                  ConnectionCloseBehavior::SILENT_CLOSE);
 }
 
 QuicPacketBuffer QuicConnection::GetPacketBuffer() {
diff --git a/quic/core/quic_connection.h b/quic/core/quic_connection.h
index 17c0830..7f4ac8b 100644
--- a/quic/core/quic_connection.h
+++ b/quic/core/quic_connection.h
@@ -599,7 +599,7 @@
   void OnWriteError(int error_code);
 
   // Whether |result| represents a MSG TOO BIG write error.
-  bool IsMsgTooBig(const WriteResult& result);
+  bool IsMsgTooBig(const QuicPacketWriter* writer, const WriteResult& result);
 
   // If the socket is not blocked, writes queued packets.
   void WriteIfNotBlocked();
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc
index 6061fd5..6cab381 100644
--- a/quic/core/quic_connection_test.cc
+++ b/quic/core/quic_connection_test.cc
@@ -34,7 +34,6 @@
 #include "quic/core/quic_types.h"
 #include "quic/core/quic_utils.h"
 #include "quic/core/quic_versions.h"
-#include "quic/platform/api/quic_error_code_wrappers.h"
 #include "quic/platform/api/quic_expect_bug.h"
 #include "quic/platform/api/quic_flags.h"
 #include "quic/platform/api/quic_ip_address.h"
@@ -12320,7 +12319,7 @@
   uint32_t num_packets_write_attempts = writer_->packets_write_attempts();
 
   writer_->SetShouldWriteFail();
-  writer_->SetWriteError(QUIC_EMSGSIZE);
+  writer_->SetWriteError(*writer_->MessageTooBigErrorCode());
   const QuicSocketAddress kNewPeerAddress(QuicIpAddress::Any4(), 12345);
   EXPECT_CALL(visitor_, OnConnectionClosed(_, ConnectionCloseSource::FROM_SELF))
       .Times(0u);
diff --git a/quic/core/quic_default_packet_writer.cc b/quic/core/quic_default_packet_writer.cc
index e71169a..23ff3c2 100644
--- a/quic/core/quic_default_packet_writer.cc
+++ b/quic/core/quic_default_packet_writer.cc
@@ -41,6 +41,10 @@
   write_blocked_ = false;
 }
 
+absl::optional<int> QuicDefaultPacketWriter::MessageTooBigErrorCode() const {
+  return EMSGSIZE;
+}
+
 QuicByteCount QuicDefaultPacketWriter::GetMaxPacketSize(
     const QuicSocketAddress& /*peer_address*/) const {
   return kMaxOutgoingPacketSize;
diff --git a/quic/core/quic_default_packet_writer.h b/quic/core/quic_default_packet_writer.h
index df30f24..f332c96 100644
--- a/quic/core/quic_default_packet_writer.h
+++ b/quic/core/quic_default_packet_writer.h
@@ -31,6 +31,7 @@
                           PerPacketOptions* options) override;
   bool IsWriteBlocked() const override;
   void SetWritable() override;
+  absl::optional<int> MessageTooBigErrorCode() const override;
   QuicByteCount GetMaxPacketSize(
       const QuicSocketAddress& peer_address) const override;
   bool SupportsReleaseTime() const override;
diff --git a/quic/core/quic_packet_writer.h b/quic/core/quic_packet_writer.h
index 107c818..78b576a 100644
--- a/quic/core/quic_packet_writer.h
+++ b/quic/core/quic_packet_writer.h
@@ -8,6 +8,7 @@
 #include <cstddef>
 #include <utility>
 
+#include "absl/types/optional.h"
 #include "quic/core/quic_packets.h"
 #include "quic/platform/api/quic_export.h"
 #include "quic/platform/api/quic_ip_address.h"
@@ -114,6 +115,11 @@
   // is received or an asynchronous write completes.
   virtual void SetWritable() = 0;
 
+  // The error code used by the writer to indicate that the write failed due to
+  // supplied packet being too big.  This is equivalent to returning
+  // WRITE_STATUS_MSG_TOO_BIG as a status.
+  virtual absl::optional<int> MessageTooBigErrorCode() const = 0;
+
   // Returns the maximum size of the packet which can be written using this
   // writer for the supplied peer address.  This size may actually exceed the
   // size of a valid QUIC packet.
diff --git a/quic/core/quic_packet_writer_wrapper.cc b/quic/core/quic_packet_writer_wrapper.cc
index 6f7c54e..62ec0cf 100644
--- a/quic/core/quic_packet_writer_wrapper.cc
+++ b/quic/core/quic_packet_writer_wrapper.cc
@@ -32,6 +32,10 @@
   writer_->SetWritable();
 }
 
+absl::optional<int> QuicPacketWriterWrapper::MessageTooBigErrorCode() const {
+  return writer_->MessageTooBigErrorCode();
+}
+
 QuicByteCount QuicPacketWriterWrapper::GetMaxPacketSize(
     const QuicSocketAddress& peer_address) const {
   return writer_->GetMaxPacketSize(peer_address);
diff --git a/quic/core/quic_packet_writer_wrapper.h b/quic/core/quic_packet_writer_wrapper.h
index e6dac04..a7f2d01 100644
--- a/quic/core/quic_packet_writer_wrapper.h
+++ b/quic/core/quic_packet_writer_wrapper.h
@@ -31,6 +31,7 @@
                           PerPacketOptions* options) override;
   bool IsWriteBlocked() const override;
   void SetWritable() override;
+  absl::optional<int> MessageTooBigErrorCode() const override;
   QuicByteCount GetMaxPacketSize(
       const QuicSocketAddress& peer_address) const override;
   bool SupportsReleaseTime() const override;
diff --git a/quic/masque/masque_encapsulated_epoll_client.cc b/quic/masque/masque_encapsulated_epoll_client.cc
index 8891e4a..047d25c 100644
--- a/quic/masque/masque_encapsulated_epoll_client.cc
+++ b/quic/masque/masque_encapsulated_epoll_client.cc
@@ -39,6 +39,10 @@
 
   void SetWritable() override {}
 
+  absl::optional<int> MessageTooBigErrorCode() const override {
+    return EMSGSIZE;
+  }
+
   QuicByteCount GetMaxPacketSize(
       const QuicSocketAddress& /*peer_address*/) const override {
     return kMasqueMaxEncapsulatedPacketSize;
diff --git a/quic/platform/api/quic_error_code_wrappers.h b/quic/platform/api/quic_error_code_wrappers.h
deleted file mode 100644
index 173c240..0000000
--- a/quic/platform/api/quic_error_code_wrappers.h
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (c) 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef QUICHE_QUIC_PLATFORM_API_QUIC_ERROR_CODE_WRAPPERS_H_
-#define QUICHE_QUIC_PLATFORM_API_QUIC_ERROR_CODE_WRAPPERS_H_
-
-#include "common/platform/api/quiche_error_code_wrappers.h"
-
-// TODO(vasilvv): ensure WRITE_STATUS_MSG_TOO_BIG works everywhere and remove
-// this.
-#define QUIC_EMSGSIZE QUICHE_EMSGSIZE
-
-#endif  // QUICHE_QUIC_PLATFORM_API_QUIC_ERROR_CODE_WRAPPERS_H_
diff --git a/quic/qbone/qbone_stream_test.cc b/quic/qbone/qbone_stream_test.cc
index c2c862a..0ec7871 100644
--- a/quic/qbone/qbone_stream_test.cc
+++ b/quic/qbone/qbone_stream_test.cc
@@ -108,6 +108,10 @@
 
   void SetWritable() override {}
 
+  absl::optional<int> MessageTooBigErrorCode() const override {
+    return absl::nullopt;
+  }
+
   QuicByteCount GetMaxPacketSize(
       const QuicSocketAddress& peer_address) const override {
     return 0;
diff --git a/quic/test_tools/first_flight.h b/quic/test_tools/first_flight.h
index 448a189..7c6123d 100644
--- a/quic/test_tools/first_flight.h
+++ b/quic/test_tools/first_flight.h
@@ -44,6 +44,9 @@
   // Overrides for QuicPacketWriter.
   bool IsWriteBlocked() const override { return false; }
   void SetWritable() override {}
+  absl::optional<int> MessageTooBigErrorCode() const override {
+    return absl::nullopt;
+  }
   QuicByteCount GetMaxPacketSize(
       const QuicSocketAddress& /*peer_address*/) const override {
     return kMaxOutgoingPacketSize;
diff --git a/quic/test_tools/quic_test_utils.cc b/quic/test_tools/quic_test_utils.cc
index 9bc950f..17804a1 100644
--- a/quic/test_tools/quic_test_utils.cc
+++ b/quic/test_tools/quic_test_utils.cc
@@ -28,7 +28,6 @@
 #include "quic/core/quic_types.h"
 #include "quic/core/quic_utils.h"
 #include "quic/core/quic_versions.h"
-#include "quic/platform/api/quic_error_code_wrappers.h"
 #include "quic/platform/api/quic_flags.h"
 #include "quic/platform/api/quic_logging.h"
 #include "quic/test_tools/crypto_test_utils.h"
@@ -1452,10 +1451,10 @@
   }
   if (next_packet_too_large_) {
     next_packet_too_large_ = false;
-    return WriteResult(WRITE_STATUS_ERROR, QUIC_EMSGSIZE);
+    return WriteResult(WRITE_STATUS_ERROR, *MessageTooBigErrorCode());
   }
   if (always_get_packet_too_large_) {
-    return WriteResult(WRITE_STATUS_ERROR, QUIC_EMSGSIZE);
+    return WriteResult(WRITE_STATUS_ERROR, *MessageTooBigErrorCode());
   }
   if (IsWriteBlocked()) {
     return WriteResult(is_write_blocked_data_buffered_
diff --git a/quic/test_tools/quic_test_utils.h b/quic/test_tools/quic_test_utils.h
index 82262eb..7e474b5 100644
--- a/quic/test_tools/quic_test_utils.h
+++ b/quic/test_tools/quic_test_utils.h
@@ -1148,6 +1148,8 @@
               (override));
   MOCK_METHOD(bool, IsWriteBlocked, (), (const, override));
   MOCK_METHOD(void, SetWritable, (), (override));
+  MOCK_METHOD(absl::optional<int>, MessageTooBigErrorCode, (),
+              (const, override));
   MOCK_METHOD(QuicByteCount, GetMaxPacketSize,
               (const QuicSocketAddress& peer_address), (const, override));
   MOCK_METHOD(bool, SupportsReleaseTime, (), (const, override));
@@ -1745,6 +1747,8 @@
 
   bool IsWriteBlocked() const override { return write_blocked_; }
 
+  absl::optional<int> MessageTooBigErrorCode() const override { return 0x1234; }
+
   void SetWriteBlocked() { write_blocked_ = true; }
 
   void SetWritable() override { write_blocked_ = false; }
diff --git a/quic/test_tools/simulator/quic_endpoint_base.cc b/quic/test_tools/simulator/quic_endpoint_base.cc
index b4882b8..e66af8b 100644
--- a/quic/test_tools/simulator/quic_endpoint_base.cc
+++ b/quic/test_tools/simulator/quic_endpoint_base.cc
@@ -165,6 +165,10 @@
   is_blocked_ = false;
 }
 
+absl::optional<int> QuicEndpointBase::Writer::MessageTooBigErrorCode() const {
+  return absl::nullopt;
+}
+
 QuicByteCount QuicEndpointBase::Writer::GetMaxPacketSize(
     const QuicSocketAddress& /*peer_address*/) const {
   return kMaxOutgoingPacketSize;
diff --git a/quic/test_tools/simulator/quic_endpoint_base.h b/quic/test_tools/simulator/quic_endpoint_base.h
index 8fbb9c0..9578c79 100644
--- a/quic/test_tools/simulator/quic_endpoint_base.h
+++ b/quic/test_tools/simulator/quic_endpoint_base.h
@@ -84,6 +84,7 @@
                             PerPacketOptions* options) override;
     bool IsWriteBlocked() const override;
     void SetWritable() override;
+    absl::optional<int> MessageTooBigErrorCode() const override;
     QuicByteCount GetMaxPacketSize(
         const QuicSocketAddress& peer_address) const override;
     bool SupportsReleaseTime() const override;
