diff --git a/quic/core/crypto/quic_crypto_client_config.h b/quic/core/crypto/quic_crypto_client_config.h
index d4b7150..f4293c0 100644
--- a/quic/core/crypto/quic_crypto_client_config.h
+++ b/quic/core/crypto/quic_crypto_client_config.h
@@ -284,7 +284,7 @@
   // then it puts an error message in |error_details| and returns an error
   // code. |version| is the QUIC version for the current connection.
   // |negotiated_versions| contains the list of version, if any, that were
-  // present in a version negotiation packet previously recevied from the
+  // present in a version negotiation packet previously received from the
   // server. The contents of this list will be compared against the list of
   // versions provided in the VER tag of the server hello.
   QuicErrorCode ProcessServerHello(
diff --git a/quic/core/http/http_decoder.h b/quic/core/http/http_decoder.h
index ae46d99..55de8ad 100644
--- a/quic/core/http/http_decoder.h
+++ b/quic/core/http/http_decoder.h
@@ -75,7 +75,7 @@
     // Called when a DATA frame has been completely processed.
     virtual void OnDataFrameEnd() = 0;
 
-    // Called when a HEADERS frame has been recevied.
+    // Called when a HEADERS frame has been received.
     // |frame_length| contains HEADERS frame length and payload length.
     virtual void OnHeadersFrameStart(Http3FrameLengths frame_length) = 0;
     // Called when part of the payload of a HEADERS frame has been read.  May be
@@ -86,7 +86,7 @@
     // |frame_len| is the length of the HEADERS frame payload.
     virtual void OnHeadersFrameEnd() = 0;
 
-    // Called when a PUSH_PROMISE frame has been recevied for |push_id|.
+    // Called when a PUSH_PROMISE frame has been received for |push_id|.
     virtual void OnPushPromiseFrameStart(PushId push_id) = 0;
     // Called when part of the payload of a PUSH_PROMISE frame has been read.
     // May be called multiple times for a single frame.  |payload| is guaranteed
diff --git a/quic/core/http/quic_spdy_session_test.cc b/quic/core/http/quic_spdy_session_test.cc
index e6e7f57..04605e1 100644
--- a/quic/core/http/quic_spdy_session_test.cc
+++ b/quic/core/http/quic_spdy_session_test.cc
@@ -1063,7 +1063,7 @@
       QuicStringPiece("HT"));
   EXPECT_CALL(*connection_,
               CloseConnection(
-                  QUIC_INVALID_STREAM_ID, "Recevied data for an invalid stream",
+                  QUIC_INVALID_STREAM_ID, "Received data for an invalid stream",
                   ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET));
   session_.OnStreamFrame(data1);
 }
@@ -1076,7 +1076,7 @@
       QUIC_ERROR_PROCESSING_STREAM, 0);
   EXPECT_CALL(*connection_,
               CloseConnection(
-                  QUIC_INVALID_STREAM_ID, "Recevied data for an invalid stream",
+                  QUIC_INVALID_STREAM_ID, "Received data for an invalid stream",
                   ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET));
   session_.OnRstStream(rst1);
 }
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index d857572..36070a4 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -124,7 +124,7 @@
   if (stream_id ==
       QuicUtils::GetInvalidStreamId(connection()->transport_version())) {
     connection()->CloseConnection(
-        QUIC_INVALID_STREAM_ID, "Recevied data for an invalid stream",
+        QUIC_INVALID_STREAM_ID, "Received data for an invalid stream",
         ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
     return;
   }
@@ -248,7 +248,7 @@
   if (stream_id ==
       QuicUtils::GetInvalidStreamId(connection()->transport_version())) {
     connection()->CloseConnection(
-        QUIC_INVALID_STREAM_ID, "Recevied data for an invalid stream",
+        QUIC_INVALID_STREAM_ID, "Received data for an invalid stream",
         ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
     return;
   }
diff --git a/quic/core/quic_session_test.cc b/quic/core/quic_session_test.cc
index 8020de5..a517d47 100644
--- a/quic/core/quic_session_test.cc
+++ b/quic/core/quic_session_test.cc
@@ -1195,7 +1195,7 @@
       QuicStringPiece("HT"));
   EXPECT_CALL(*connection_,
               CloseConnection(
-                  QUIC_INVALID_STREAM_ID, "Recevied data for an invalid stream",
+                  QUIC_INVALID_STREAM_ID, "Received data for an invalid stream",
                   ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET));
   session_.OnStreamFrame(data1);
 }
@@ -1208,7 +1208,7 @@
       QUIC_ERROR_PROCESSING_STREAM, 0);
   EXPECT_CALL(*connection_,
               CloseConnection(
-                  QUIC_INVALID_STREAM_ID, "Recevied data for an invalid stream",
+                  QUIC_INVALID_STREAM_ID, "Received data for an invalid stream",
                   ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET));
   session_.OnRstStream(rst1);
 }
diff --git a/quic/core/quic_stream_id_manager.cc b/quic/core/quic_stream_id_manager.cc
index 1736809..fb6e14b 100644
--- a/quic/core/quic_stream_id_manager.cc
+++ b/quic/core/quic_stream_id_manager.cc
@@ -75,7 +75,7 @@
     QUIC_CODE_COUNT(max_stream_id_bad_direction);
     session_->connection()->CloseConnection(
         QUIC_MAX_STREAM_ID_ERROR,
-        "Recevied max stream ID with wrong initiator bit setting",
+        "Received max stream ID with wrong initiator bit setting",
         ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
     return false;
   }
