diff --git a/experiments/field_trials.py b/experiments/field_trials.py
index 053f12b..4dca8a6 100755
--- a/experiments/field_trials.py
+++ b/experiments/field_trials.py
@@ -120,9 +120,6 @@
     FieldTrial('WebRTC-SCM-Timestamp',
                'webrtc:5773',
                date(2024, 4, 1)),
-    FieldTrial('WebRTC-SendPacketsOnWorkerThread',
-               'webrtc:14502',
-               date(2024, 4, 1)),
     FieldTrial('WebRTC-SetCodecPreferences-ReceiveOnlyFilterInsteadOfThrow',
                'webrtc:15396',
                date(2024, 12, 1)),
diff --git a/test/pc/e2e/peer_connection_e2e_smoke_test.cc b/test/pc/e2e/peer_connection_e2e_smoke_test.cc
index 8c19172..018e6ae 100644
--- a/test/pc/e2e/peer_connection_e2e_smoke_test.cc
+++ b/test/pc/e2e/peer_connection_e2e_smoke_test.cc
@@ -180,71 +180,6 @@
   RunAndCheckEachVideoStreamReceivedFrames(run_params);
 }
 
-// IOS debug builds can be quite slow, disabling to avoid issues with timeouts.
-#if defined(WEBRTC_IOS) && defined(WEBRTC_ARCH_ARM64) && !defined(NDEBUG)
-#define MAYBE_Smoke DISABLED_Smoke
-#else
-#define MAYBE_SendAndReceivePacketsOnOneThread \
-  SmokeSendAndReceivePacketsOnOneThread
-#endif
-// Only use the network thread for sending and receiving packets.
-// The one and only network thread is used as a worker thread in all
-// PeerConnections. Pacing when sending packets is done on the worker thread.
-// See bugs.webrtc.org/14502.
-TEST_F(PeerConnectionE2EQualityTestSmokeTest,
-       MAYBE_SendAndReceivePacketsOnOneThread) {
-  test::ScopedFieldTrials trials(
-      std::string(field_trial::GetFieldTrialString()) +
-      "WebRTC-SendPacketsOnWorkerThread/Enabled/");
-
-  std::pair<EmulatedNetworkManagerInterface*, EmulatedNetworkManagerInterface*>
-      network_links = CreateNetwork();
-  AddPeer(network_links.first, [](PeerConfigurer* alice) {
-    // Peerconnection use the network thread as the worker thread.
-    alice->SetUseNetworkThreadAsWorkerThread();
-    VideoConfig video(160, 120, 15);
-    video.stream_label = "alice-video";
-    video.sync_group = "alice-media";
-    alice->AddVideoConfig(std::move(video));
-
-    AudioConfig audio;
-    audio.stream_label = "alice-audio";
-    audio.input_file_name =
-        test::ResourcePath("pc_quality_smoke_test_alice_source", "wav");
-    audio.sampling_frequency_in_hz = 48000;
-    audio.sync_group = "alice-media";
-    alice->SetAudioConfig(std::move(audio));
-    alice->SetVideoCodecs(
-        {VideoCodecConfig(cricket::kVp9CodecName, {{"profile-id", "0"}})});
-  });
-  AddPeer(network_links.second, [](PeerConfigurer* charlie) {
-    // Peerconnection use the network thread as the worker thread.
-    charlie->SetUseNetworkThreadAsWorkerThread();
-    charlie->SetName("charlie");
-    VideoConfig video(160, 120, 15);
-    video.stream_label = "charlie-video";
-    video.temporal_layers_count = 2;
-    charlie->AddVideoConfig(std::move(video));
-
-    AudioConfig audio;
-    audio.stream_label = "charlie-audio";
-    audio.input_file_name =
-        test::ResourcePath("pc_quality_smoke_test_bob_source", "wav");
-    charlie->SetAudioConfig(std::move(audio));
-    charlie->SetVideoCodecs(
-        {VideoCodecConfig(cricket::kVp9CodecName, {{"profile-id", "0"}})});
-    charlie->SetVideoEncoderBitrateMultiplier(1.1);
-  });
-  fixture()->AddQualityMetricsReporter(
-      std::make_unique<StatsBasedNetworkQualityMetricsReporter>(
-          std::map<std::string, std::vector<EmulatedEndpoint*>>(
-              {{"alice", network_links.first->endpoints()},
-               {"charlie", network_links.second->endpoints()}}),
-          network_emulation(), test::GetGlobalMetricsLogger()));
-  RunParams run_params(TimeDelta::Seconds(2));
-  RunAndCheckEachVideoStreamReceivedFrames(run_params);
-}
-
 #if defined(WEBRTC_MAC) || defined(WEBRTC_IOS)
 TEST_F(PeerConnectionE2EQualityTestSmokeTest, SmokeH264) {
   std::pair<EmulatedNetworkManagerInterface*, EmulatedNetworkManagerInterface*>
diff --git a/video/pc_full_stack_tests.cc b/video/pc_full_stack_tests.cc
index fd2d6d2..f423e4b 100644
--- a/video/pc_full_stack_tests.cc
+++ b/video/pc_full_stack_tests.cc
@@ -98,7 +98,7 @@
           // Use the worker thread for sending packets.
           // https://bugs.chromium.org/p/webrtc/issues/detail?id=14502
           {.use_network_thread_as_worker_thread = true,
-           .field_trials = "WebRTC-SendPacketsOnWorkerThread/Enabled/",
+           .field_trials = "",
            .test_case_name_postfix = "_ReducedThreads"}};
 }
 
