diff --git a/quiche/quic/core/quic_session.cc b/quiche/quic/core/quic_session.cc
index e71f67f..3355080 100644
--- a/quiche/quic/core/quic_session.cc
+++ b/quiche/quic/core/quic_session.cc
@@ -783,18 +783,23 @@
   connection_->ProcessUdpPacket(self_address, peer_address, packet);
 }
 
+std::string QuicSession::on_closed_frame_string() const {
+  std::stringstream ss;
+  ss << on_closed_frame_;
+  if (source_.has_value()) {
+    ss << " " << ConnectionCloseSourceToString(source_.value());
+  }
+  return ss.str();
+}
+
 QuicConsumedData QuicSession::WritevData(QuicStreamId id, size_t write_length,
                                          QuicStreamOffset offset,
                                          StreamSendingState state,
                                          TransmissionType type,
                                          EncryptionLevel level) {
   QUIC_BUG_IF(session writevdata when disconnected, !connection()->connected())
-      << ENDPOINT
-      << absl::StrCat("Try to write stream data when connection is closed: ",
-                      QuicFrameToString(QuicFrame(&on_closed_frame_)), " ",
-                      source_.has_value()
-                          ? ConnectionCloseSourceToString(source_.value())
-                          : "");
+      << ENDPOINT << "Try to write stream data when connection is closed: "
+      << on_closed_frame_string();
   if (!IsEncryptionEstablished() &&
       !QuicUtils::IsCryptoStreamId(transport_version(), id)) {
     // Do not let streams write without encryption. The calling stream will end
@@ -871,11 +876,8 @@
   QUIC_BUG_IF(quic_bug_12435_11, !connection()->connected())
       << ENDPOINT
       << absl::StrCat("Try to write control frame: ", QuicFrameToString(frame),
-                      " when connection is closed: ",
-                      QuicFrameToString(QuicFrame(&on_closed_frame_)), " ",
-                      source_.has_value()
-                          ? ConnectionCloseSourceToString(source_.value())
-                          : "");
+                      " when connection is closed: ")
+      << on_closed_frame_string();
   if (!IsEncryptionEstablished()) {
     // Suppress the write before encryption gets established.
     return false;
diff --git a/quiche/quic/core/quic_session.h b/quiche/quic/core/quic_session.h
index 2117c8b..ecdabf9 100644
--- a/quiche/quic/core/quic_session.h
+++ b/quiche/quic/core/quic_session.h
@@ -648,6 +648,8 @@
   using ZombieStreamMap =
       absl::flat_hash_map<QuicStreamId, std::unique_ptr<QuicStream>>;
 
+  std::string on_closed_frame_string() const;
+
   // Creates a new stream to handle a peer-initiated stream.
   // Caller does not own the returned stream.
   // Returns nullptr and does error handling if the stream can not be created.
