Replit: незаконченный деплой заморозил Repl — восстановили 98%

29 сентября 2023 с 14:00 до 16:30 по тихоокеанскому времени Replit ломала Repl, которые открыли в это окно — около 2,5 часа. Файловая система переходила в режим только для чтения или выдавала ошибки ввода-вывода. Проекты, не открытые в этот промежуток, не пострадали.
Причина не в коде пользователей. В продакшн-кластеры по ошибке уехала незаконченная сборка с тестового кластера: Replit тестировала асинхронный батчинг для хранилища, а при деплое логирования на тест 29 сентября фича попала в прод. Новая система хранения вышла 19 июля — снимки файловой системы в манифестах, данные в блоках, быстрые форки. На тесте уже ловили сбои при записи манифестов и сборке мусора.
После алерта мониторинга откатили билд до 16:30 — с этого момента новые Repl не ломались. Команда включила круглосуточное восстановление и к 17:30 вручную починила официальные шаблоны, чтобы новые проекты с нуля снова создавались нормально.
Как шло восстановление
Выходные ушли на итерации восстановления из бэкапов:
- 30 сентября, 02:30–19:10 — первая волна, около 30% затронутых Repl;
- 30 сентября, 20:30 — вторая итерация, 70%;
- 1 октября, 07:30 — 81%;
- 2 октября, 13:30 — 86%;
- 2 октября, 19:00 — 98%.
Оставшиеся 2% всё ещё поднимали. Для них Replit просила ссылку на Repl через report-read-only-repls.replit.app или почту.
Что меняют после инцидента
Корень проблемы — нехватка стоп-кранов на деплой: незавершённое изменение прошло из staging в прод. Replit добавляет автоматический canary-анализ, чтобы аномальные сборки не доезжали до продакшна, и замедляет выкладку storage-инфраструктуры. Параллельно дорабатывают бэкапы — точечнее и быстрее.
Источник: Sep 29 Incident Update: Read-Only Repls.