


5 ноября Cloudflare объявила об автоматических повторах fetch и RPC к Durable Objects при повторяемых ошибках до доставки вызова объекту. Изменение касается вызовов из Workers и других Durable Objects. На Mentoring.digital разбираем, что проверить в существующем приложении.
По умолчанию выполняется до четырёх повторов. Новый повтор не начинается позднее десяти секунд от начала исходного вызова. Ошибки из пользовательского кода объекта и ошибки с признаком overloaded не повторяются этим механизмом.
При неопределённом результате доставки среда может повторить запрос, но объект отклоняет повтор, если первая попытка уже дошла. Отдельная возможность retryable разрешает повторное выполнение отмеченного метода, поэтому требует проверки его идемпотентности.
Если приложение уже повторяет запросы, каждая его попытка теперь может включать повторы среды. Cloudflare рекомендует уменьшить число собственных попыток или отключить повторы на соответствующем stub через maxRetries: 0.
Для параметра retry и функции retryable нужен Wrangler 4.158.0 или новее. В параметрах stub доступны maxRetries от 0 до 10 и timeoutMs от 500 до 60 000 миллисекунд.
Редакционная рекомендация: выпишите места с ручными повторами и разделите операции чтения, установки значения и накопительного изменения. Повтор «установить количество» и повтор «добавить единицу» имеют разные последствия. Не отмечайте метод повторяемым без разбора его действий.
На тестовом стенде проверьте временный сетевой сбой и завершение после исчерпания попыток. Разобрать надёжность взаимодействия сервисов можно с наставником по DevOps.