diff --git a/quiche/quic/core/http/end_to_end_test.cc b/quiche/quic/core/http/end_to_end_test.cc
index 1662a69..fd71300 100644
--- a/quiche/quic/core/http/end_to_end_test.cc
+++ b/quiche/quic/core/http/end_to_end_test.cc
@@ -6964,12 +6964,12 @@
   QuicStreamId id2 = stream->GetStreamId();
   ASSERT_TRUE(stream != nullptr);
   QUICHE_EXPECT_OK(quiche::WriteIntoStream(*stream, "test"));
-  stream->SendStopSending(24);
+  stream->SendStopSending(100024);
 
   std::array<std::string, 2> expected_log = {
       absl::StrCat("Received reset for stream ", id1, " with error code 42"),
       absl::StrCat("Received stop sending for stream ", id2,
-                   " with error code 24"),
+                   " with error code 100024"),
   };
   client_->WaitUntil(2000, [this, &expected_log]() {
     return received_webtransport_unidirectional_streams_.size() >=
diff --git a/quiche/quic/core/http/web_transport_http3.cc b/quiche/quic/core/http/web_transport_http3.cc
index 7a5fd07..f1c922b 100644
--- a/quiche/quic/core/http/web_transport_http3.cc
+++ b/quiche/quic/core/http/web_transport_http3.cc
@@ -436,7 +436,7 @@
 
 namespace {
 constexpr uint64_t kWebTransportMappedErrorCodeFirst = 0x52e4a40fa8db;
-constexpr uint64_t kWebTransportMappedErrorCodeLast = 0x52e4a40fa9e2;
+constexpr uint64_t kWebTransportMappedErrorCodeLast = 0x52e5ac983162;
 constexpr WebTransportStreamError kDefaultWebTransportError = 0;
 }  // namespace
 
@@ -454,7 +454,8 @@
 
   uint64_t shifted = http3_error_code - kWebTransportMappedErrorCodeFirst;
   uint64_t result = shifted - shifted / 0x1f;
-  QUICHE_DCHECK_LE(result, std::numeric_limits<uint8_t>::max());
+  QUICHE_DCHECK_LE(result,
+                   std::numeric_limits<webtransport::StreamErrorCode>::max());
   return static_cast<WebTransportStreamError>(result);
 }
 
diff --git a/quiche/quic/core/http/web_transport_http3_test.cc b/quiche/quic/core/http/web_transport_http3_test.cc
index 87cd0d3..be8cfdd 100644
--- a/quiche/quic/core/http/web_transport_http3_test.cc
+++ b/quiche/quic/core/http/web_transport_http3_test.cc
@@ -18,6 +18,7 @@
 TEST(WebTransportHttp3Test, ErrorCodesToHttp3) {
   EXPECT_EQ(0x52e4a40fa8dbu, WebTransportErrorToHttp3(0x00));
   EXPECT_EQ(0x52e4a40fa9e2u, WebTransportErrorToHttp3(0xff));
+  EXPECT_EQ(0x52e5ac983162u, WebTransportErrorToHttp3(0xffffffff));
 
   EXPECT_EQ(0x52e4a40fa8f7u, WebTransportErrorToHttp3(0x1c));
   EXPECT_EQ(0x52e4a40fa8f8u, WebTransportErrorToHttp3(0x1d));
@@ -28,6 +29,7 @@
 TEST(WebTransportHttp3Test, ErrorCodesToWebTransport) {
   EXPECT_THAT(Http3ErrorToWebTransport(0x52e4a40fa8db), Optional(0x00));
   EXPECT_THAT(Http3ErrorToWebTransport(0x52e4a40fa9e2), Optional(0xff));
+  EXPECT_THAT(Http3ErrorToWebTransport(0x52e5ac983162u), Optional(0xffffffff));
 
   EXPECT_THAT(Http3ErrorToWebTransport(0x52e4a40fa8f7), Optional(0x1cu));
   EXPECT_THAT(Http3ErrorToWebTransport(0x52e4a40fa8f8), Optional(0x1du));
@@ -40,11 +42,18 @@
 }
 
 TEST(WebTransportHttp3Test, ErrorCodeRoundTrip) {
-  for (int error = 0; error < 256; error++) {
+  for (int error = 0; error <= 65536; error++) {
     uint64_t http_error = WebTransportErrorToHttp3(error);
     absl::optional<WebTransportStreamError> mapped_back =
         quic::Http3ErrorToWebTransport(http_error);
-    EXPECT_THAT(mapped_back, Optional(error));
+    ASSERT_THAT(mapped_back, Optional(error));
+  }
+  for (int64_t error = 0; error < std::numeric_limits<uint32_t>::max();
+       error += 65537) {
+    uint64_t http_error = WebTransportErrorToHttp3(error);
+    absl::optional<WebTransportStreamError> mapped_back =
+        quic::Http3ErrorToWebTransport(http_error);
+    ASSERT_THAT(mapped_back, Optional(error));
   }
 }
 
diff --git a/quiche/quic/core/quic_types.h b/quiche/quic/core/quic_types.h
index b2a100b..961e904 100644
--- a/quiche/quic/core/quic_types.h
+++ b/quiche/quic/core/quic_types.h
@@ -23,6 +23,7 @@
 #include "quiche/quic/platform/api/quic_export.h"
 #include "quiche/quic/platform/api/quic_flags.h"
 #include "quiche/common/quiche_endian.h"
+#include "quiche/web_transport/web_transport.h"
 
 namespace quic {
 
@@ -52,10 +53,10 @@
 
 // WebTransport session IDs are stream IDs.
 using WebTransportSessionId = uint64_t;
-// WebTransport stream reset codes are 8-bit.
-using WebTransportStreamError = uint8_t;
+// WebTransport stream reset codes are 32-bit.
+using WebTransportStreamError = ::webtransport::StreamErrorCode;
 // WebTransport session error codes are 32-bit.
-using WebTransportSessionError = uint32_t;
+using WebTransportSessionError = ::webtransport::SessionErrorCode;
 
 enum : size_t { kQuicPathFrameBufferSize = 8 };
 using QuicPathFrameBuffer = std::array<uint8_t, kQuicPathFrameBufferSize>;
diff --git a/quiche/web_transport/web_transport.h b/quiche/web_transport/web_transport.h
index 7ea0085..70bb36f 100644
--- a/quiche/web_transport/web_transport.h
+++ b/quiche/web_transport/web_transport.h
@@ -30,7 +30,7 @@
 using StreamId = uint32_t;
 // Application-specific error code used for resetting either the read or the
 // write half of the stream.
-using StreamErrorCode = uint8_t;
+using StreamErrorCode = uint32_t;
 // Application-specific error code used for closing a WebTransport session.
 using SessionErrorCode = uint32_t;
 
