diff --git a/quic/core/handshaker_delegate_interface.h b/quic/core/handshaker_delegate_interface.h
index 5103509..a8e5e96 100644
--- a/quic/core/handshaker_delegate_interface.h
+++ b/quic/core/handshaker_delegate_interface.h
@@ -71,6 +71,9 @@
       const TransportParameters& params,
       bool is_resumption,
       std::string* error_details) = 0;
+
+  // Called at the end of an handshake operation callback.
+  virtual void OnHandshakeCallbackDone() = 0;
 };
 
 }  // namespace quic
diff --git a/quic/core/quic_connection.h b/quic/core/quic_connection.h
index 26629ba..a009954 100644
--- a/quic/core/quic_connection.h
+++ b/quic/core/quic_connection.h
@@ -1109,6 +1109,8 @@
 
   bool check_keys_before_writing() const { return check_keys_before_writing_; }
 
+  bool is_processing_packet() const { return framer_.is_processing_packet(); }
+
  protected:
   // Calls cancel() on all the alarms owned by this connection.
   void CancelAllAlarms();
diff --git a/quic/core/quic_framer.cc b/quic/core/quic_framer.cc
index ede689c..f775afb 100644
--- a/quic/core/quic_framer.cc
+++ b/quic/core/quic_framer.cc
@@ -1415,6 +1415,13 @@
 }
 
 bool QuicFramer::ProcessPacket(const QuicEncryptedPacket& packet) {
+  is_processing_packet_ = true;
+  bool result = ProcessPacketInternal(packet);
+  is_processing_packet_ = false;
+  return result;
+}
+
+bool QuicFramer::ProcessPacketInternal(const QuicEncryptedPacket& packet) {
   QuicDataReader reader(packet.data(), packet.length());
 
   bool packet_has_ietf_packet_header = false;
diff --git a/quic/core/quic_framer.h b/quic/core/quic_framer.h
index 763d0b8..f029dd1 100644
--- a/quic/core/quic_framer.h
+++ b/quic/core/quic_framer.h
@@ -319,6 +319,9 @@
   // ignored.
   bool ProcessPacket(const QuicEncryptedPacket& packet);
 
+  // Whether we are in the middle of a call to this->ProcessPacket.
+  bool is_processing_packet() const { return is_processing_packet_; }
+
   // Largest size in bytes of all stream frame fields without the payload.
   static size_t GetMinStreamFrameSize(QuicTransportVersion version,
                                       QuicStreamId stream_id,
@@ -1042,6 +1045,8 @@
                               QuicIetfFrameType type,
                               QuicStreamId* id);
 
+  bool ProcessPacketInternal(const QuicEncryptedPacket& packet);
+
   std::string detailed_error_;
   QuicFramerVisitorInterface* visitor_;
   QuicErrorCode error_;
@@ -1115,6 +1120,9 @@
   // owned. TODO(fayang): Consider add data producer to framer's constructor.
   QuicStreamFrameDataProducer* data_producer_;
 
+  // Whether we are in the middle of a call to this->ProcessPacket.
+  bool is_processing_packet_ = false;
+
   // If true, framer infers packet header type (IETF/GQUIC) from version_.
   // Otherwise, framer infers packet header type from first byte of a received
   // packet.
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index 9705710..a8d9e6f 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -1675,6 +1675,16 @@
                                             error_details);
 }
 
+void QuicSession::OnHandshakeCallbackDone() {
+  if (!connection_->connected()) {
+    return;
+  }
+
+  if (!connection()->is_processing_packet()) {
+    connection()->MaybeProcessUndecryptablePackets();
+  }
+}
+
 void QuicSession::OnCryptoHandshakeMessageSent(
     const CryptoHandshakeMessage& /*message*/) {}
 
diff --git a/quic/core/quic_session.h b/quic/core/quic_session.h
index e22bd23..8fca9bd 100644
--- a/quic/core/quic_session.h
+++ b/quic/core/quic_session.h
@@ -276,6 +276,7 @@
   QuicErrorCode ProcessTransportParameters(const TransportParameters& params,
                                            bool is_resumption,
                                            std::string* error_details) override;
+  void OnHandshakeCallbackDone() override;
 
   // Implement StreamDelegateInterface.
   void OnStreamError(QuicErrorCode error_code,
diff --git a/quic/core/tls_server_handshaker.cc b/quic/core/tls_server_handshaker.cc
index 405e109..7b5ec3b 100644
--- a/quic/core/tls_server_handshaker.cc
+++ b/quic/core/tls_server_handshaker.cc
@@ -12,6 +12,8 @@
 #include "third_party/boringssl/src/include/openssl/ssl.h"
 #include "net/third_party/quiche/src/quic/core/crypto/quic_crypto_server_config.h"
 #include "net/third_party/quiche/src/quic/core/crypto/transport_parameters.h"
+#include "net/third_party/quiche/src/quic/platform/api/quic_flag_utils.h"
+#include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_hostname_utils.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_logging.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_arraysize.h"
@@ -38,7 +40,7 @@
   handshaker_->state_ = STATE_SIGNATURE_COMPLETE;
   handshaker_->signature_callback_ = nullptr;
   if (last_state == STATE_SIGNATURE_PENDING) {
-    handshaker_->AdvanceHandshake();
+    handshaker_->AdvanceHandshakeFromCallback();
   }
 }
 
@@ -68,7 +70,7 @@
   // messages. We need to have it resume processing handshake messages by
   // calling AdvanceHandshake.
   if (handshaker_->state_ == STATE_TICKET_DECRYPTION_PENDING) {
-    handshaker_->AdvanceHandshake();
+    handshaker_->AdvanceHandshakeFromCallback();
   }
   // The TicketDecrypter took ownership of this callback when Decrypt was
   // called. Once the callback returns, it will be deleted. Remove the
@@ -274,6 +276,17 @@
   }
 }
 
+void TlsServerHandshaker::AdvanceHandshakeFromCallback() {
+  AdvanceHandshake();
+  if (GetQuicReloadableFlag(
+          quic_process_undecryptable_packets_after_async_decrypt_callback) &&
+      state_ != STATE_CONNECTION_CLOSED) {
+    QUIC_RELOADABLE_FLAG_COUNT(
+        quic_process_undecryptable_packets_after_async_decrypt_callback);
+    handshaker_delegate()->OnHandshakeCallbackDone();
+  }
+}
+
 void TlsServerHandshaker::CloseConnection(QuicErrorCode error,
                                           const std::string& reason_phrase) {
   state_ = STATE_CONNECTION_CLOSED;
diff --git a/quic/core/tls_server_handshaker.h b/quic/core/tls_server_handshaker.h
index 7b28825..b6ea353 100644
--- a/quic/core/tls_server_handshaker.h
+++ b/quic/core/tls_server_handshaker.h
@@ -89,6 +89,10 @@
   // Called when a new message is received on the crypto stream and is available
   // for the TLS stack to read.
   void AdvanceHandshake() override;
+
+  // Called when a potentially async operation is done and the done callback
+  // needs to advance the handshake.
+  void AdvanceHandshakeFromCallback();
   void CloseConnection(QuicErrorCode error,
                        const std::string& reason_phrase) override;
 
