diff --git a/core/lib/Drupal/Core/EventSubscriber/FinishResponseSubscriber.php b/core/lib/Drupal/Core/EventSubscriber/FinishResponseSubscriber.php
index 8dc9bac392eac15ca673acab3b507e6851e8814f..bbc92c8cc89e3c1d5eb0ec549c890003c37e5548 100644
--- a/core/lib/Drupal/Core/EventSubscriber/FinishResponseSubscriber.php
+++ b/core/lib/Drupal/Core/EventSubscriber/FinishResponseSubscriber.php
@@ -307,7 +307,9 @@ protected function setExpiresNoCache(Response $response) {
    */
   public function setContentLengthHeader(ResponseEvent $event): void {
     $response = $event->getResponse();
-    if ($response instanceof StreamedResponse) {
+    // @todo The batch system will break unless we check ob_get_level(). See
+    //   https://drupal.org/i/3392196.
+    if ($response instanceof StreamedResponse || ob_get_level()) {
       return;
     }