diff --git a/quic/core/http/quic_spdy_stream.cc b/quic/core/http/quic_spdy_stream.cc
index 810994e..1e89e77 100644
--- a/quic/core/http/quic_spdy_stream.cc
+++ b/quic/core/http/quic_spdy_stream.cc
@@ -1381,21 +1381,25 @@
           Http3DatagramContextExtensions());
       break;
     case CapsuleType::DATAGRAM: {
-      Http3DatagramVisitor* visitor = nullptr;
+      Http3DatagramVisitor* visitor;
       if (frame.datagram_capsule.context_id.has_value()) {
         auto it = datagram_context_visitors_.find(
             frame.datagram_capsule.context_id.value());
-        if (it != datagram_context_visitors_.end()) {
-          visitor = it->second;
+        if (it == datagram_context_visitors_.end()) {
+          QUIC_DLOG(ERROR) << ENDPOINT << "Received capsule " << frame
+                           << " without any visitor for context "
+                           << frame.datagram_capsule.context_id.value();
+          return true;
         }
+        visitor = it->second;
       } else {
+        if (datagram_no_context_visitor_ == nullptr) {
+          QUIC_DLOG(ERROR) << ENDPOINT << "Received capsule " << frame
+                           << " without any visitor for no context";
+          return true;
+        }
         visitor = datagram_no_context_visitor_;
       }
-      if (visitor == nullptr) {
-        QUIC_DLOG(ERROR) << ENDPOINT << "Received capsule " << frame
-                         << " without any registration visitor";
-        return true;
-      }
       visitor->OnHttp3Datagram(id(), frame.datagram_capsule.context_id,
                                frame.datagram_capsule.http_datagram_payload);
     } break;
@@ -1501,6 +1505,7 @@
           << id() << " context ID " << context_id.value();
       return;
     }
+    decoder_.set_datagram_context_id_present(true);
   } else {
     // Registration without a context ID.
     if (!datagram_context_visitors_.empty()) {
@@ -1518,6 +1523,7 @@
       return;
     }
     datagram_no_context_visitor_ = visitor;
+    decoder_.set_datagram_context_id_present(false);
   }
   if (spdy_session_->http_datagram_support() == HttpDatagramSupport::kDraft03) {
     const bool is_client = session()->perspective() == Perspective::IS_CLIENT;
