Сегодня, в пятницу, тысячи разработчиков по всему миру столкнулись с неожиданной и критической проблемой: невозможностью собрать и развернуть свои проекты из-за массового сбоя CDN Prisma. Ошибка 403 при попытке скачать бинарные файлы Prisma Engine заблокировала CI/CD пайплайны, локальные сборки и деплой на всех популярных облачных платформах — от Render и Railway до Google Cloud и Digital Ocean.
Что произошло?
Всё началось с того, что при запуске команд prisma generate или prisma migrate разработчики стали получать сообщения об ошибке:
Error: Failed to fetch sha256 checksum at https://binaries.prisma.sh/all_commits/…/libquery_engine.so.node.gz.sha256 - 403 Forbidden
Попытки обойти ошибку с помощью переменной окружения PRISMA_ENGINES_CHECKSUM_IGNORE_MISSING=1 не помогали — скачивание самих бинарников также возвращало 403 Forbidden. Проблема проявлялась во всех окружениях: и в продакшене, и в девелопменте, и на CI.
Масштаб проблемы
Судя по активности в GitHub-issue #27700, сбой затронул тысячи команд по всему миру. Разработчики делились мемами, шутками и отчаянием, ведь пятничные релизы и деплой оказались под угрозой. Кто-то иронизировал, что теперь можно просто открыть пиво и ждать, пока всё починят, а кто-то всерьёз переживал за свои рабочие места из-за красных билдов в GitHub Actions.
Почему это критично?
Prisma — один из самых популярных ORM-инструментов для Node.js. Его архитектура подразумевает скачивание бинарных файлов движка из CDN при каждой сборке или деплое. Если CDN недоступен, проект не собирается и не деплоится. Нет возможности быстро переключиться на зеркало или использовать локальный кэш: всё завязано на инфраструктуру Prisma.
Временные решения
Некоторые пытались вручную запускать миграции (npx prisma migrate deploy) или использовать переменные окружения для игнорирования ошибок, но это не решало проблему скачивания бинарников. Были предложения собрать движки самостоятельно или искать сторонние зеркала, но это рискованно и не рекомендуется для продакшена.
Дополнение к статье: как развивалась ситуация и чем всё закончилось
Как развивалась ситуация
Пока тысячи разработчиков по всему миру пытались понять, что происходит, GitHub-issue превратился в настоящий мем-чат и клуб поддержки. Люди делились скриптами для мониторинга статуса CDN, шутили про «пятничные деплои», вспоминали мемы про «не деплой на прод в пятницу» и даже устраивали мини-опросы, кто из-за этого чуть не лишился работы.
Многие пытались найти обходные пути: кто-то пробовал откатиться на старые версии Prisma (@prisma/client@5.9.1 или 5.10.2), кто-то вручную копировал бинарники, кто-то даже предлагал пересобрать движки самостоятельно или искать сторонние зеркала. Однако все эти решения были временными и не подходили для продакшена.
В какой-то момент стало ясно, что проблема не только в CDN, а в том, что часть бинарников просто исчезла или стала недоступна из-за проблем с авторизацией на стороне облачного хранилища (R2/S3). Это подтвердили и представители Prisma: «Похоже, что сработал DNS failover, и возникла проблема с авторизацией на S3, из-за чего бинарники стали недоступны. Мы переключили обратно, теперь всё работает, позже проведём постмортем».
Когда всё починили
Спустя примерно 1,5–2 часа после начала инцидента команда Prisma восстановила доступ к бинарникам. В комментариях стали появляться сообщения «It’s working again!», «FIXED!», «LETS GOOOO!!!» и даже «Теперь можно возвращаться к работе». Кто-то шутил, что теперь придётся действительно работать, а кто-то благодарил комьюнити за поддержку и мемы.
Официальный комментарий Prisma:
«Folks this should be fixed now! Thank you for your patience while we worked on this. To provide additional context for the incident: We use R2 for storing query engine binaries which has a DNS failover to duplicates stored in S3. The failover triggered this evening and it seems there was an authorization issue preventing binaries from being downloaded. We have overridden the failover which is why binaries downloads are now working and will run a postmortem to understand and fix the authorization.»
Итоги и выводы
- Причина сбоя: сработал failover с R2 на S3, где возникла проблема с авторизацией, из-за чего все бинарники стали недоступны.
- Время простоя: около 2 часов, в течение которых CI/CD пайплайны и деплой были невозможны.
- Реакция комьюнити: массовая поддержка, юмор, мемы, обмен временными решениями и советами.
- Временные решения: откат на старые версии, ручное копирование бинарников, попытки пересобрать движки — всё это не рекомендуется для продакшена.
- Официальное решение: проблема устранена, команда обещает провести разбор инцидента и улучшить отказоустойчивость.
Рекомендации на будущее
- Кэшируйте бинарники: если используете Prisma в критичных проектах, заранее сохраняйте необходимые бинарные файлы в артефактах CI/CD или в приватных хранилищах.
- Следите за статусом: проверяйте https://www.prisma-status.com/ при любых массовых сбоях.
- Не деплойте в пятницу: мем, который снова подтвердился на практике.
- Оценивайте риски: любая зависимость от стороннего CDN — потенциальная точка отказа. Рассмотрите альтернативы или способы локального хранения критичных зависимостей.
- Поддерживайте друг друга: в такие моменты комьюнити — это не только про код, но и про поддержку, юмор и совместное преодоление трудностей.
P.S.
Этот инцидент войдёт в историю как пример того, как одна техническая проблема может объединить тысячи разработчиков по всему миру — и напомнить, что даже самые надёжные инструменты не застрахованы от сбоев. Берегите себя, делайте бэкапы и не забывайте отдыхать, даже если ваш деплой сломался в пятницу вечером!