Репозиторий NPM семь часов был недоступен через прокси

Изменения в настройках сервера репозитория NPM привели к неработоспособности сервиса. Проблему усложняло то, что столкнувшиеся с проблемой пользователи были введены в заблуждение странным сообщением об ошибке «ERR! 418 I’m a teapot», которое возвращалось в ответ на попытки обновления или установки пакетов. При этом страница status.npmjs.org показывала, что все подсистемы отвечают и работают в штатном режиме, а откат на прошлую версию NPM на стороне клиента не решал проблемы.

Разбор ситуации показал, что проблема затрагивает только пользователей, использующих прокси, как правило работающих из корпоративных сетей или с использованием виртуальных машин. Спустя семь часов проблема была исправлена. Далее выяснилось, что запросы с использованием HTTPS, отправленные через прокси, приходят с указанием номера порта в заголовке Host (registry.npmjs.org:443), в то время как разработчики NPM добавили строгие проверки и рассчитывали увидеть только registry.npmjs.org. Странный код ошибки 418 возвращался для проблем неопределённого характера и был составлен по мотивам шутки, опубликованной 1 апреля в RFC 2324.

©  OpenNet