Ошибки

ERR_INCOMPLETE_CHUNKED_ENCODING: что значит и как исправить

ERR_INCOMPLETE_CHUNKED_ENCODING — сервер отправлял страницу частями и закрыл соединение раньше, чем сообщил, что страница закончилась. Страница открывается не целиком или остаётся пустой, а код ошибки виден в консоли разработчика.

Обновлено 08.10.2026≈ 8 мин чтения
Содержание 10

Что сделать прямо сейчас

Если вы просто открываете сайт:

  1. Обновите страницу: F5, на Mac — Cmd+R. Если соединение оборвалось случайно, со второго раза страница может загрузиться полностью.
  2. Если страница опять обрывается, исправить это может только владелец сайта. Сообщите ему адрес страницы и код ошибки ERR_INCOMPLETE_CHUNKED_ENCODING.

Если сайт ваш, переходите к разделам «Как проверить» и «Как исправить» ниже: там все команды по шагам.

Что значит ошибка

Сервер не всегда знает длину страницы заранее: например, программа сайта ещё собирает страницу, а её начало уже можно отправлять. Тогда сервер передаёт страницу частями. Перед каждой частью он указывает её размер, а в конце присылает пустую часть — знак, что страница закончилась.

Если соединение закрылось раньше, чем пришёл этот знак, страница дошла не до конца. По правилам HTTP такой ответ считается неполным, и Chrome сообщает об ошибке ERR_INCOMPLETE_CHUNKED_ENCODING. В исходном коде Chrome это ошибка -355.

Передавать страницу частями умеет протокол HTTP/1.1, а в HTTP/2 этот способ не используется. Сервер nginx отправляет страницу частями по HTTP/1.1, например, в таких случаях:

  • программа сайта не указала длину страницы в заголовке Content-Length;
  • nginx сам сжимает страницу: после сжатия длина меняется, и nginx убирает этот заголовок.

Какой код покажет Chrome, когда страница оборвалась, зависит от того, как она шла: если длина была названа заранее — ERR_CONTENT_LENGTH_MISMATCH, если страница шла частями — эту ошибку.

Как выглядит в Chrome

В нашей проверке Chrome не показал никакого сообщения: на экране осталась та часть страницы, которую он успел получить. Если после заголовков не пришло ни одной части, страница была пустой.

Сам код ошибки виден в инструментах разработчика: нажмите F12 или Ctrl+Shift+I, на Mac — Cmd+Option+I, и откройте вкладку Console («Консоль»). В ней появится строка Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING. Такая же строка бывает и тогда, когда оборвалась не сама страница, а картинка, скрипт или стиль на ней.

Страницу ошибки Chrome для этого кода тоже может показать: заголовок «Страница недоступна», текст «Сайт example.com неожиданно разорвал соединение.», код ERR_INCOMPLETE_CHUNKED_ENCODING и кнопку «Перезагрузить».

Причины

Сама по себе передача частями — нормальный способ отправить страницу. Ошибка значит только, что передача оборвалась. Вот почему это бывает:

  • Программа сайта не закончила ответ. Она начала отдавать страницу, но аварийно завершилась или закрыла соединение раньше времени.
  • nginx перестал ждать программу. Если программа посреди ответа надолго замолкает, nginx закрывает соединение. По умолчанию он ждёт каждую следующую порцию данных 60 секунд.
  • Диск сервера заполнен. Ответ программы, который не помещается в отведённую под него память, nginx частично записывает во временный файл на диске. Если места нет, записать его не получается, и nginx обрывает ответ.

Как проверить

Шаг 1 выполните на своём компьютере: на Mac — в программе Терминал, в Windows — в командной строке. Если вы ни разу не открывали терминал, начните с инструкции Как открыть терминал: там всё по шагам. Скопируйте команду целиком, замените example.com на адрес своего сайта и нажмите Enter.

Шаг 1. Загрузите страницу командой curl

На Mac:

curl -sS --http1.1 -o /dev/null https://example.com/

В Windows:

curl -sS --http1.1 -o NUL https://example.com/

Вместо https://example.com/ укажите полный адрес страницы, которая обрывается. Ключ --http1.1 нужен потому, что передача частями бывает только в HTTP/1.1. Ключ -o /dev/null (в Windows — -o NUL) не сохраняет страницу, а -sS оставляет на экране только сообщения об ошибках.

Если страница пришла полностью, curl ничего не напишет. Если ответ оборвался, появится строка с номером 18, например:

curl: (18) transfer closed with outstanding read data remaining

Номер 18 значит, что страница пришла не целиком. Текст после номера может быть другим, например с числом недошедших байт, — важен сам номер.

Если обрыв случается не каждый раз, выполните команду несколько раз подряд.

Шаг 2. Найдите обрыв в журнале ошибок nginx

Этот и следующий шаги выполняются на сервере. Если вы ещё не подключались к нему, начните с инструкции Как подключиться к VPS по SSH.

Сразу после того, как страница оборвалась, выполните команду:

sudo tail -n 50 /var/log/nginx/error.log

Команда выведет 50 последних строк журнала ошибок nginx, самые свежие записи — в конце. Найдите среди них строки с такими словами:

Слова в журналеЧто случилось
upstream prematurely closedПрограмма сайта оборвала соединение, не закончив ответ
upstream timed outnginx не дождался от программы следующей порции данных
No space left on deviceДиск сервера заполнен

Слова while reading upstream в той же строке значат, что ответ оборвался, когда страница уже шла к посетителю, — это и есть причина этой ошибки. Если там написано while reading response header from upstream, программа подвела раньше, до начала ответа. Тогда посетитель видит не эту ошибку, а 502 Bad Gateway или 504 Gateway Timeout.

Шаг 3. Проверьте, есть ли место на диске

df -h

Команда выведет список дисков сервера. Нужна строка, где в последнем столбце, Mounted on, стоит одна косая черта /. Если в столбце Use% у неё 100%, свободного места не осталось.

Как исправить

Если программа сайта не заканчивает ответ

Посмотрите журнал самой программы за то же время, что и запись в журнале nginx: если программа завершилась с ошибкой, причина будет там. Для программы, запущенной как служба, последние 50 строк журнала выводит команда sudo journalctl -u имя_службы -n 50.

Исправьте ошибку, перезапустите программу и повторите шаг 1.

Если nginx не дожидается программы

Сначала попробуйте ускорить саму программу. Если она по делу отвечает долго — например, собирает большой отчёт, — увеличьте время ожидания в nginx. Откройте файл настроек сайта, например командой sudo nano /etc/nginx/sites-available/example.com, найдите блок location со строкой proxy_pass и добавьте в него строку:

proxy_read_timeout 300s;

С ней nginx будет ждать каждую следующую порцию данных до 300 секунд — пяти минут — вместо 60. Для сайта на PHP, у которого в блоке location стоит fastcgi_pass, а не proxy_pass, добавьте другую строку:

fastcgi_read_timeout 300s;

Сохраните файл — Ctrl+O, Enter, затем Ctrl+X — и проверьте настройки:

sudo nginx -t

В ответе должны быть слова syntax is ok и test is successful. Если вместо них сообщение об ошибке, в нём указаны файл и номер строки: исправьте строку и проверьте снова. Когда проверка прошла, примените настройки:

sudo systemctl reload nginx

Если команда ничего не ответила, настройки применены. Затем повторите шаг 1.

Если диск заполнен

Узнайте, какие папки занимают больше всего места:

sudo du -xh --max-depth=2 / 2>/dev/null | sort -h | tail -n 20

Команда посчитает размер папок и выведет 20 самых больших. Это может занять минуту-другую. В последней строке — весь диск, выше — самые крупные папки. Удаляйте только то, что точно не нужно: например, старые архивы и резервные копии, которые вы делали сами. Системные папки — /usr, /lib, /boot — не трогайте. Если не знаете, нужен ли файл, оставьте его.

Когда место освободится, повторите шаг 1. Перезапускать nginx не нужно.

Передачу частями выключать не нужно

В nginx есть настройка chunked_transfer_encoding off, которая выключает передачу частями. Причину обрыва она не устраняет: nginx просто станет отправлять такие страницы по-другому, а обрываться они будут по-прежнему.

На обычном хостинге

На обычном хостинге настройками nginx и дисками сервера занимается хостинг. Напишите в поддержку адрес страницы, время, когда она оборвалась, и код ошибки ERR_INCOMPLETE_CHUNKED_ENCODING.

Соседние ошибки

ОшибкаЧем отличается
ERR_CONTENT_LENGTH_MISMATCHТоже обрыв, но сервер заранее назвал длину страницы
ERR_EMPTY_RESPONSEСервер закрыл соединение, ничего не ответив — даже заголовков
ERR_CONTENT_DECODING_FAILEDСтраница пришла, но браузер не смог её распаковать
502 Bad GatewayПрограмма подвела до начала ответа, и nginx вернул страницу с ошибкой

Источники

Проверено в Chrome 155 на локальном тестовом сервере 8 октября 2026 года.

Сверено 8 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 08.10.2026