Разработчик под ником shmily7 получил счёт от Cloudflare на $10 811,41. По его словам, фоновая задача в Durable Objects зациклилась и выполнила около шести триллионов операций чтения и записи. Через два дня он сообщил, что оплатил счёт и собирается переносить проекты на собственный сервер. Первый пост, продолжение.
Самая неприятная подробность: приложением никто не пользовался. Это был исследовательский проект. Автор связывает ошибку с изменением, сделанным через Codex, и пишет, что бесконечный цикл запустился через 23 дня, без предупреждения.
Так легко подумать: пока просто экспериментирую, больших расходов взяться неоткуда. Но фоновой задаче пользователи не нужны. Она может просыпаться по расписанию, обращаться к базе и назначать следующий запуск. Если в этой логике ошибка, платные операции продолжаются и в пустом приложении. Как работают фоновые задачи Durable Objects.
С ИИ особенно легко остановиться на моменте, когда всё заработало. Страница открывается, кнопки нажимаются, нужный результат появился. Хочется двигаться дальше. Проверка того, как система поведёт себя при сбое, остаётся на потом.
А её стоит включать в само задание на разработку. Заранее ограничить число повторов и объём работы фоновых задач. Проверить сценарии, которые включаются спустя время. Предусмотреть способ остановить задачу и убедиться, что он действительно работает. Отдельно разобраться, какие операции оплачиваются и как отслеживается их расход.
Перед тем как оставить свой эксперимент работать без присмотра, полезно задать один вопрос: если он начнёт бесконечно повторять платную операцию, что его остановит и когда вы об этом узнаете?
Умение быстро собрать приложение с ИИ очень многое даёт. Но в готовый результат должна входить и проверка того, насколько дорого может обойтись ошибка.
Следующий шаг
Попросите Codex проверить, за что вы платите — с чего начать проверку подключённых сервисов и расходов.
Если вы собираете собственный сервис с ИИ, можно обсудить, как проверить его перед запуском и где ограничить возможные расходы.
Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov

