diff --git a/api/transport/BUILD.gn b/api/transport/BUILD.gn
index cd8c01b..12200a6 100644
--- a/api/transport/BUILD.gn
+++ b/api/transport/BUILD.gn
@@ -43,6 +43,7 @@
     "../units:data_size",
     "../units:time_delta",
     "../units:timestamp",
+    "//third_party/abseil-cpp/absl/base:core_headers",
     "//third_party/abseil-cpp/absl/types:optional",
   ]
 }
diff --git a/api/transport/network_control.h b/api/transport/network_control.h
index 1ba65ee..6fc1f7c 100644
--- a/api/transport/network_control.h
+++ b/api/transport/network_control.h
@@ -14,6 +14,7 @@
 
 #include <memory>
 
+#include "absl/base/attributes.h"
 #include "api/rtc_event_log/rtc_event_log.h"
 #include "api/transport/network_types.h"
 #include "api/transport/webrtc_key_value_config.h"
@@ -60,32 +61,42 @@
   virtual ~NetworkControllerInterface() = default;
 
   // Called when network availabilty changes.
-  virtual NetworkControlUpdate OnNetworkAvailability(NetworkAvailability) = 0;
+  virtual NetworkControlUpdate OnNetworkAvailability(NetworkAvailability)
+      ABSL_MUST_USE_RESULT = 0;
   // Called when the receiving or sending endpoint changes address.
-  virtual NetworkControlUpdate OnNetworkRouteChange(NetworkRouteChange) = 0;
+  virtual NetworkControlUpdate OnNetworkRouteChange(NetworkRouteChange)
+      ABSL_MUST_USE_RESULT = 0;
   // Called periodically with a periodicy as specified by
   // NetworkControllerFactoryInterface::GetProcessInterval.
-  virtual NetworkControlUpdate OnProcessInterval(ProcessInterval) = 0;
+  virtual NetworkControlUpdate OnProcessInterval(ProcessInterval)
+      ABSL_MUST_USE_RESULT = 0;
   // Called when remotely calculated bitrate is received.
-  virtual NetworkControlUpdate OnRemoteBitrateReport(RemoteBitrateReport) = 0;
+  virtual NetworkControlUpdate OnRemoteBitrateReport(RemoteBitrateReport)
+      ABSL_MUST_USE_RESULT = 0;
   // Called round trip time has been calculated by protocol specific mechanisms.
-  virtual NetworkControlUpdate OnRoundTripTimeUpdate(RoundTripTimeUpdate) = 0;
+  virtual NetworkControlUpdate OnRoundTripTimeUpdate(RoundTripTimeUpdate)
+      ABSL_MUST_USE_RESULT = 0;
   // Called when a packet is sent on the network.
-  virtual NetworkControlUpdate OnSentPacket(SentPacket) = 0;
+  virtual NetworkControlUpdate OnSentPacket(SentPacket)
+      ABSL_MUST_USE_RESULT = 0;
   // Called when a packet is received from the remote client.
-  virtual NetworkControlUpdate OnReceivedPacket(ReceivedPacket) = 0;
+  virtual NetworkControlUpdate OnReceivedPacket(ReceivedPacket)
+      ABSL_MUST_USE_RESULT = 0;
   // Called when the stream specific configuration has been updated.
-  virtual NetworkControlUpdate OnStreamsConfig(StreamsConfig) = 0;
+  virtual NetworkControlUpdate OnStreamsConfig(StreamsConfig)
+      ABSL_MUST_USE_RESULT = 0;
   // Called when target transfer rate constraints has been changed.
-  virtual NetworkControlUpdate OnTargetRateConstraints(
-      TargetRateConstraints) = 0;
+  virtual NetworkControlUpdate OnTargetRateConstraints(TargetRateConstraints)
+      ABSL_MUST_USE_RESULT = 0;
   // Called when a protocol specific calculation of packet loss has been made.
-  virtual NetworkControlUpdate OnTransportLossReport(TransportLossReport) = 0;
+  virtual NetworkControlUpdate OnTransportLossReport(TransportLossReport)
+      ABSL_MUST_USE_RESULT = 0;
   // Called with per packet feedback regarding receive time.
   virtual NetworkControlUpdate OnTransportPacketsFeedback(
-      TransportPacketsFeedback) = 0;
+      TransportPacketsFeedback) ABSL_MUST_USE_RESULT = 0;
   // Called with network state estimate updates.
-  virtual NetworkControlUpdate OnNetworkStateEstimate(NetworkStateEstimate) = 0;
+  virtual NetworkControlUpdate OnNetworkStateEstimate(NetworkStateEstimate)
+      ABSL_MUST_USE_RESULT = 0;
 };
 
 // NetworkControllerFactoryInterface is an interface for creating a network
diff --git a/call/rtp_transport_controller_send.cc b/call/rtp_transport_controller_send.cc
index 4e8d021..83e0318 100644
--- a/call/rtp_transport_controller_send.cc
+++ b/call/rtp_transport_controller_send.cc
@@ -480,7 +480,7 @@
   task_queue_.PostTask([this, estimate] {
     RTC_DCHECK_RUN_ON(&task_queue_);
     if (controller_)
-      controller_->OnNetworkStateEstimate(estimate);
+      PostUpdates(controller_->OnNetworkStateEstimate(estimate));
   });
 }
 
diff --git a/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc b/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
index 9503ada..0f73c7b 100644
--- a/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
+++ b/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
@@ -146,7 +146,7 @@
   // prescribing on which iterations it must change (like a mock would).
   void TargetBitrateTrackingSetup() {
     controller_ = factory_.Create(InitialConfig());
-    controller_->OnProcessInterval(DefaultInterval());
+    OnUpdate(controller_->OnProcessInterval(DefaultInterval()));
   }
 
   NetworkControllerConfig InitialConfig(
@@ -216,7 +216,7 @@
           CreateResult(current_time_.ms() + delay_buildup, current_time_.ms(),
                        kPayloadSize, PacedPacketInfo());
       delay_buildup += delay;
-      controller_->OnSentPacket(packet.sent_packet);
+      OnUpdate(controller_->OnSentPacket(packet.sent_packet));
       TransportPacketsFeedback feedback;
       feedback.feedback_time = packet.receive_time;
       feedback.packet_feedbacks.push_back(packet);
@@ -235,17 +235,19 @@
 TEST_F(GoogCcNetworkControllerTest, ReactsToChangedNetworkConditions) {
   // Test no change.
   AdvanceTimeMilliseconds(25);
-  controller_->OnProcessInterval(DefaultInterval());
+  OnUpdate(controller_->OnProcessInterval(DefaultInterval()));
 
   NetworkControlUpdate update;
-  controller_->OnRemoteBitrateReport(CreateBitrateReport(kInitialBitrate * 2));
+  OnUpdate(controller_->OnRemoteBitrateReport(
+      CreateBitrateReport(kInitialBitrate * 2)));
   AdvanceTimeMilliseconds(25);
   update = controller_->OnProcessInterval(DefaultInterval());
   EXPECT_EQ(update.target_rate->target_rate, kInitialBitrate * 2);
   EXPECT_EQ(update.pacer_config->data_rate(),
             kInitialBitrate * 2 * kDefaultPacingRate);
 
-  controller_->OnRemoteBitrateReport(CreateBitrateReport(kInitialBitrate));
+  OnUpdate(
+      controller_->OnRemoteBitrateReport(CreateBitrateReport(kInitialBitrate)));
   AdvanceTimeMilliseconds(25);
   update = controller_->OnProcessInterval(DefaultInterval());
   EXPECT_EQ(update.target_rate->target_rate, kInitialBitrate);
