Перейти к основному содержанию

Все ошибки Nano Banana Pro и их решения: полное руководство по устранению 429, 503, IMAGE_SAFETY и других (2026)

A
25 мин чтенияГенерация изображений с ИИ

Получаете ошибки при работе с Nano Banana Pro? Это исчерпывающее руководство охватывает все коды ошибок — 429 rate limits, 503 overload, IMAGE_SAFETY блокировки, 500 внутренние ошибки и 400/403 клиентские проблемы — с проверенными исправлениями, готовым к продакшену кодом и систематическим подходом к отладке, актуальным на февраль 2026 года.

Все ошибки Nano Banana Pro и их решения: полное руководство по устранению 429, 503, IMAGE_SAFETY и других (2026)

Ошибки Nano Banana Pro могут остановить рабочий процесс генерации изображений без предупреждения, но для каждой из них существует решение. Ошибки ограничения частоты запросов (HTTP 429) составляют примерно 70% всех сбоев Nano Banana Pro по данным сообщества разработчиков на февраль 2026 года, за ними следуют ошибки перегрузки серверов (503/502) — около 15%, проблемы с аутентификацией (403) — примерно 8%, а оставшиеся 7% приходятся на фильтры безопасности, внутренние ошибки и некорректные запросы. Это руководство поможет вам определить конкретную ошибку, понять, почему она возникает на уровне инфраструктуры, и применить правильное решение — с готовым к продакшену кодом, который можно скопировать прямо в проект.

Краткое содержание

Каждая ошибка Nano Banana Pro попадает в одну из пяти категорий, и для каждой существует чёткий путь решения. Если вы видите ошибку 429, значит, вы превысили лимит частоты запросов — подождите 60 секунд для сброса RPM или проверьте дневную квоту, которая сбрасывается в полночь по тихоокеанскому времени. Ошибка 503 или 502 означает, что серверы Google перегружены — планируйте запросы в непиковые часы с 00:00 до 06:00 UTC, когда частота ошибок падает ниже 8%. Ошибка IMAGE_SAFETY срабатывает, когда ненастраиваемый выходной фильтр Google блокирует сгенерированное изображение, даже для легитимного контента — перефразирование промпта с явным указанием художественного стиля решает проблему примерно в 70-80% случаев. Ошибки 500 и 504 указывают на серверные сбои — реализуйте экспоненциальный бэкофф, начиная с 1 секунды и удваивая до 32 секунд. Наконец, ошибки 400 и 403 — это клиентские проблемы, которые можно исправить немедленно, проверив API-ключ, формат запроса и доступность бесплатного уровня в вашем регионе. Добавьте эту страницу в закладки — она вам ещё пригодится.

Быстрая идентификация ошибки — найдите решение за 30 секунд

Блок-схема диагностики ошибок Nano Banana Pro с деревом решений для определения 429, 503, IMAGE_SAFETY и других ошибок

Прежде чем углубляться в детальные решения, необходимо точно определить, с какой ошибкой вы столкнулись. Самый быстрый путь к исправлению начинается с сопоставления сообщения об ошибке на экране с одной из пяти категорий ниже. Независимо от того, работаете ли вы через Gemini API, Google AI Studio или стороннюю платформу вроде fal.ai, базовые типы ошибок остаются неизменными — незначительно отличается лишь их представление.

Если ответ на ошибку содержит RESOURCE_EXHAUSTED или HTTP-статус 429, вы столкнулись с ошибкой ограничения частоты запросов. Это самая распространённая проблема, и решение достаточно простое — перейдите к разделу Rate Limit ниже. Если вы видите UNAVAILABLE, SERVICE_UNAVAILABLE или HTTP 503 или 502, проблема на стороне Google, и раздел о перегрузке серверов содержит ваше решение. Если ответ упоминает IMAGE_SAFETY, SAFETY или показывает finishReason: "SAFETY" в API-ответе, вы активировали контентный фильтр — раздел IMAGE_SAFETY объясняет, что именно происходит и как это обойти. Для ошибок INTERNAL или HTTP 500 и 504 (таймауты) обратитесь к разделу внутренних ошибок. Всё остальное — INVALID_ARGUMENT (400), PERMISSION_DENIED (403), NOT_FOUND (404) — относится к клиентским ошибкам, которые можно исправить на вашей стороне немедленно.

Вот как выглядит фактический API-ответ для самой распространённой ошибки, чтобы вы могли сопоставить его с тем, что видите:

json
{ "error": { "code": 429, "message": "Resource has been exhausted (e.g. check quota).", "status": "RESOURCE_EXHAUSTED" } }

Если ваше сообщение об ошибке не совпадает ни с одним из этих шаблонов, проверьте, не получаете ли вы HTML-страницу с ошибкой вместо JSON — это обычно указывает на сетевую проблему, ошибку конфигурации прокси или региональное ограничение. Сетевые ошибки часто проявляются как общие сообщения о таймауте или отказе в соединении, которые не содержат стандартную JSON-структуру ошибок Google. Если вы находитесь за корпоративным файрволом или VPN, промежуточный узел может блокировать запросы к API-эндпоинтам Google, генерируя ошибки, не связанные с Gemini API. Попробуйте выполнить тот же запрос из другой сетевой среды, чтобы исключить проблемы с локальной инфраструктурой. Если ошибка сохраняется в разных сетях, раздел клиентских ошибок ниже охватывает оставшиеся диагностические шаги.

Ошибки ограничения частоты (429 RESOURCE_EXHAUSTED) — почему 70% ошибок именно такие

Столбчатая диаграмма распределения ошибок Nano Banana Pro, показывающая 429 rate limits на уровне 70 процентов

Ошибки ограничения частоты доминируют при устранении неполадок Nano Banana Pro по простой причине: Google применяет строгие квоты одновременно по нескольким измерениям, и превышение любого из них вызывает ответ 429. Понимание этих измерений — ключ как к исправлению текущей ошибки, так и к предотвращению её повторения. Gemini API измеряет использование по RPM (запросов в минуту), RPD (запросов в день), TPM (токенов в минуту) и IPM (изображений в минуту), и каждое измерение имеет свой порог в зависимости от уровня вашего аккаунта.

Немедленное решение обманчиво просто: подождать. Лимиты RPM сбрасываются каждые 60 секунд, поэтому если вы отправили слишком много запросов в текущую минуту, паузы на одну минуту достаточно для автоматического решения проблемы. Дневные лимиты (RPD) сбрасываются в полночь по тихоокеанскому времени — не по UTC, не по вашему местному часовому поясу, а именно по тихоокеанскому. Это различие важно, потому что если вы находитесь в Европе или Азии и ваше приложение предполагает сброс в полночь UTC, вы неправильно рассчитаете оставшуюся квоту и будете получать лишние ошибки.

Более глубокий вопрос — достаточно ли запаса обеспечивает текущий уровень для вашего сценария использования. Пользователи бесплатного уровня получают примерно 2 изображения в минуту и около 50 запросов в день для моделей генерации изображений. Это означает, что даже умеренное использование во время творческой сессии быстро упрётся в лимит. Если вы создаёте что-то сложнее личного проекта, ограничения бесплатного уровня будут постоянно вас разочаровывать.

Сравнение уровней Gemini API с лимитами Free, Tier 1 и Tier 2 для генерации изображений

Стоит ли переходить на платный уровень? Вот практическая схема принятия решения. Если вы получаете ошибки 429 несколько раз в час при обычном использовании, переход на Tier 1 за $19.99 в месяц даёт примерно 10 IPM и 250 RPD — пятикратное улучшение. Если вы запускаете продакшен-приложение, обслуживающее несколько пользователей, Tier 2 или выше с 20+ IPM и 1000+ RPD просто необходим. Математика здесь проста: разработчик, потративший два часа на отладку ошибок rate limit, обходится дороже, чем месяц платного уровня. Подробную информацию обо всех лимитах уровней Gemini и процедуре перехода можно найти в нашем подробном руководстве по лимитам Gemini API.

Один аспект, который почти ни одно руководство по устранению неполадок не рассматривает — это оплата за неудачные запросы. Когда вы получаете ошибку 429, запрос был отклонён до начала каких-либо вычислений, что означает: вам не начисляется плата за запросы, ограниченные по частоте. То же относится к ошибкам 503 — Google не выставляет счёт за запросы, которые серверы не смогли обработать. Это значит, что вы можете безопасно реализовать логику повторных попыток, не беспокоясь о накоплении расходов от неудачных попыток. Однако если ваш запрос был частично обработан и затем завершился по таймауту (504), правила тарификации могут отличаться — проверьте панель использования в Google AI Studio для уточнения.

Если вы постоянно упираетесь в лимиты и хотите более простое решение, прокси-сервисы API, такие как laozhang.ai, агрегируют квоты с нескольких аккаунтов, фактически предоставляя более высокую пропускную способность по цене примерно $0.05 за изображение без необходимости самостоятельно управлять обновлением уровней. Это особенно полезно в периоды пиковой нагрузки, когда даже лимиты платных уровней кажутся ограничивающими. Вы также можете ознакомиться с нашим детальным разбором ошибки 429 для продвинутых стратегий управления rate limit или сравнить лимиты бесплатного и платного уровней более подробно.

Вот реализация на Python правильной логики повторных попыток для ошибок 429, которую можно вставить прямо в ваш проект:

python
import time import random from google import genai def generate_with_retry(client, prompt, max_retries=5): """Generate image with exponential backoff for rate limits.""" for attempt in range(max_retries): try: response = client.models.generate_content( model="gemini-2.0-flash-exp", contents=prompt ) return response except Exception as e: if "429" in str(e) or "RESOURCE_EXHAUSTED" in str(e): wait = min(2 ** attempt + random.uniform(0, 1), 64) print(f"Rate limited. Waiting {wait:.1f}s (attempt {attempt+1})") time.sleep(wait) else: raise raise Exception("Max retries exceeded for rate limit errors")

Ошибки перегрузки серверов (503/502) — когда Google не справляется с нагрузкой

Ошибки перегрузки серверов сообщают вам нечто принципиально иное по сравнению с ограничениями частоты: проблема не в вашем паттерне использования, а в мощностях инфраструктуры Google. Когда вы получаете ошибку 503 UNAVAILABLE или 502 Bad Gateway, это означает, что вычислительные ресурсы модели Nano Banana Pro исчерпаны для всех пользователей глобально. Это различие важно, потому что решение совершенно другое — никакие замены API-ключей или модификации запросов не помогут. Нужно подождать, пока освободятся ресурсы, или перенаправить запрос на альтернативную модель.

Временной паттерн ошибок 503 удивительно предсказуем. По данным сообщества разработчиков с конца 2025 по начало 2026 года, пиковая частота ошибок наблюдается между 10:00 и 14:00 UTC, когда одновременно активны утренние американские и дневные европейские пользователи. В эти окна до 45% API-вызовов могут возвращать ошибки 503. Напротив, окно с 00:00 до 06:00 UTC стабильно показывает частоту ошибок ниже 8%. Если ваше приложение допускает пакетную обработку вместо генерации в реальном времени, планирование задач генерации изображений в непиковые часы — наиболее эффективная стратегия для полного устранения ошибок 503.

Ситуация заметно ухудшилась во второй половине 2025 года, когда популярность Nano Banana Pro превысила выделенные Google мощности. В январе 2026 года несколько разработчиков сообщили, что время ответа API увеличилось с типичных 20-40 секунд до 180 секунд и более, прежде чем запрос завершался с ошибкой 503. Google признал ограничения по мощности, отметив, что модели генерации изображений Gemini остаются на стадии Pre-GA (до общей доступности) с ограниченными вычислительными ресурсами, которые динамически управляются в зависимости от глобального спроса.

Продакшен-подход — стратегия фолбэка на другую модель. Вместо того чтобы многократно пытаться обратиться к перегруженной модели, настройте приложение на автоматическое переключение на альтернативную модель при устойчивых ошибках 503. Рекомендуемая цепочка фолбэков: сначала попробовать Nano Banana Pro для лучшего качества, затем переключиться на Gemini Flash для более быстрой обработки с чуть более низким качеством изображения, и при необходимости обратиться к стороннему сервису как к последнему варианту. Вот как это выглядит на практике:

python
def generate_with_fallback(prompt, client): """Try primary model, fall back on 503 errors.""" models = [ "gemini-2.0-flash-exp", # Primary: best quality "gemini-2.0-flash", # Fallback: faster, still good ] for model in models: try: response = client.models.generate_content( model=model, contents=prompt ) return response, model except Exception as e: if "503" in str(e) or "UNAVAILABLE" in str(e): print(f"{model} overloaded, trying next...") continue raise raise Exception("All models unavailable — try again in 5-10 minutes")

Для приложений с гибким таймингом реализация очереди запросов с планированием в непиковые часы может практически полностью устранить ошибки 503. Ключевой вывод: ошибки 503 являются транзиентными и зависят от инфраструктуры — они разрешаются сами по себе при снижении нагрузки на серверы, и никакие ваши действия не могут ускорить разрешение, кроме ожидания или перенаправления запросов.

Стоит отметить, что ошибки 503 ведут себя по-разному для различных вариантов моделей Gemini. Модели генерации изображений (на которые опирается Nano Banana Pro) значительно более подвержены перегрузке, чем текстовые модели Gemini, потому что генерация изображений требует существенно больше GPU-ресурсов на каждый запрос. Один вызов генерации изображения потребляет примерно в 10-50 раз больше вычислительных ресурсов, чем текстовый ответ эквивалентной длины, что объясняет, почему эндпоинты для изображений достигают лимитов ёмкости, в то время как текстовые эндпоинты остаются доступными. Поэтому вы можете видеть успешные текстовые ответы от Gemini API и одновременно получать ошибки 503 для запросов на генерацию изображений — эти два типа нагрузки конкурируют за разные пулы ресурсов внутри инфраструктуры Google.

Ошибки IMAGE_SAFETY — когда ваш контент блокируется несправедливо

Ошибка IMAGE_SAFETY — пожалуй, самая раздражающая ошибка Nano Banana Pro, потому что она блокирует совершенно легитимный контент. В отличие от ошибок rate limit или серверных ошибок, имеющих чёткие технические причины, срабатывание фильтров безопасности часто кажется произвольным — вы можете успешно генерировать один и тот же объект десять раз, а на одиннадцатой попытке получить блокировку. Чтобы понять, почему так происходит, нужно знать, как на самом деле работает система безопасности Gemini, потому что она сложнее, чем большинство разработчиков думает.

Google реализует двухуровневую систему фильтрации безопасности для генерации изображений. Уровень 1 состоит из настраиваемых параметров безопасности, которые оценивают входной промпт до начала генерации. Они охватывают четыре категории вреда: притеснение, разжигание ненависти, откровенно сексуальный контент и опасный контент. Вы можете изменить пороги Уровня 1 через API, установив safety_settings на BLOCK_NONE для каждой категории, и это часто первое исправление, которое пробуют разработчики. Уровень 2 — это ненастраиваемый выходной фильтр, который сканирует сгенерированное изображение после создания — именно здесь возникают ошибки IMAGE_SAFETY. Ни одна настройка API не может отключить Уровень 2, потому что Google применяет его на уровне инфраструктуры для всех пользователей, всех уровней, всегда.

Практический вывод однозначен: когда вы видите finishReason: "SAFETY" в API-ответе, нужно определить, какой уровень вызвал блокировку. Если ответ содержит safetyRatings с высокими показателями вероятности для конкретных записей HARM_CATEGORY, вы попали на Уровень 1 — и это можно исправить, изменив конфигурацию настроек безопасности. Если ответ просто возвращает флаг IMAGE_SAFETY без детальных рейтингов по категориям вреда, вы попали на выходной фильтр Уровня 2, и единственный обходной путь — модификация промпта.

Google публично признал, что их фильтры безопасности «стали гораздо более осторожными, чем предполагалось», вызывая ложные срабатывания на контенте, который очевидно является редакционным, образовательным или художественным. Фотографии продуктов для электронной коммерции, исторические изображения и портретные фотографии особенно подвержены ложным срабатываниям. Реалистичная процентность успеха обходных решений через промпт-инжиниринг для пограничного контента составляет примерно 70-80%, по данным опыта разработчиков.

Стратегии промпт-инжиниринга, которые действительно работают, основаны на трёх принципах. Во-первых, добавляйте явные указания художественного стиля — промпты с указанием «digital illustration», «watercolor painting» или «technical diagram» срабатывают на фильтрах безопасности значительно реже, чем промпты, запрашивающие фотореалистичный результат. Во-вторых, предоставьте контекст сцены, проясняющий ваши намерения — описание обстановки, цели и художественного обрамления устраняет двусмысленность, которую фильтр может интерпретировать негативно. В-третьих, поскольку генерация изображений носит стохастический характер, простой повторный запрос того же промпта иногда может дать проходящее изображение при последующих попытках вообще без изменений промпта.

Для более полного подхода к обходу контентных фильтров, включая конкретные примеры трансформации промптов и продвинутые техники, обратитесь к нашему руководству по обходу контентных фильтров Nano Banana Pro. В нём подробно рассматриваются нюансы настройки Уровня 1 и обходные пути для Уровня 2.

Когда блокировки IMAGE_SAFETY сохраняются несмотря на модификацию промптов, необходимо провести честную оценку: некоторые категории контента всегда будут блокироваться, и никакой промпт-инжиниринг этого не изменит. Контент, связанный с CSAM, блокируется навсегда без каких-либо обходных путей — это правильно и требуется по закону. Если ваш сценарий использования принципиально требует типов контента, которые Nano Banana Pro постоянно отказывается генерировать, переход на другой сервис генерации изображений с иной контентной политикой — более продуктивный путь, чем бесконечная итерация промптов.

Внутренние ошибки (500) и другие серверные сбои (504)

Внутренние ошибки сервера и таймауты представляют собой иной тип сбоя по сравнению с ошибками перегрузки, хотя оба возникают на стороне Google. Ошибка 500 INTERNAL означает, что в процессе обработки Google произошёл неожиданный сбой — это может быть баг, проблема конфигурации или транзиентный сбой инфраструктуры, затронувший именно ваш запрос. Ошибка 504 DEADLINE_EXCEEDED означает, что ваш запрос был принят и обработка началась, но заняла больше времени, чем допустимое окно таймаута.

Различие между ошибками 500 и 503 важно для вашей стратегии повторных попыток. Ошибка 503 надёжно указывает на проблемы с ёмкостью и, скорее всего, разрешится за минуты по мере перераспределения нагрузки. Ошибка 500 менее предсказуема — она может разрешиться сразу при повторной попытке или указывать на более глубокую проблему, сохраняющуюся часами. Практический подход — повторять запросы при ошибке 500 с экспоненциальным бэкоффом (начиная с 1 секунды, удваивая до 32 секунд, максимум 5 попыток), и если ошибки сохраняются после всех попыток, подождать не менее 15 минут перед следующей попыткой. Многократная быстрая отправка при ошибке 500 тратит ваше время и не помогает Google быстрее устранить лежащую в основе проблему.

Ошибки таймаута (504) имеют конкретную распространённую причину: генерация изображений высокого разрешения или сложных изображений, которая превышает отведённое время обработки. В январе 2026 года разработчики сообщали, что запросы на генерацию изображений 4K особенно подвержены таймаутам 504, с увеличением времени обработки с обычных 20-40 секунд до 180 секунд и более перед превышением дедлайна. Если вы постоянно получаете ошибки 504, рассмотрите уменьшение сложности или разрешения изображения в запросе, или увеличьте настройку клиентского таймаута в вашей HTTP-библиотеке. Официальная документация Google по устранению неполадок рекомендует настройку клиентского таймаута как основное решение ошибок 504.

Официальная документация Google также отмечает важный нюанс для моделей серии Gemini 3: настоятельно рекомендуется оставлять параметр temperature на значении по умолчанию 1.0. Понижение temperature ниже 1.0 может вызвать зацикливание или деградацию производительности в новых моделях, что может проявляться как ошибки 500 или неожиданно долгое время обработки, завершающееся таймаутами 504. Если вы настроили параметр temperature, стоит вернуть его к значению по умолчанию, прежде чем пробовать другие исправления.

Клиентские ошибки (400/403) — исправляем то, что на вашей стороне

Клиентские ошибки проще всего диагностировать и исправить, потому что проблема полностью в вашем запросе или конфигурации, а не в инфраструктуре Google. Ошибка 400 INVALID_ARGUMENT означает, что тело запроса некорректно — возможно, отсутствует обязательное поле, указано недопустимое значение параметра или есть ошибка синтаксиса JSON. Ошибка 403 PERMISSION_DENIED означает, что ваш API-ключ неверен, истёк или не имеет необходимых разрешений для Gemini API.

Для ошибок 400 начните с валидации запроса по официальному справочнику API. Типичные причины включают: отправку запроса на генерацию изображения на текстовый эндпоинт модели, использование идентификатора модели, который не существует или был снят с поддержки, включение параметров, которые не поддерживает текущая версия API, и предоставление изображений в неподдерживаемых форматах. Ответ об ошибке обычно содержит описательное поле message, которое точно указывает на проблему — внимательно прочитайте его перед тем, как пробовать случайные исправления.

Одна часто упускаемая причина ошибок 400 — вариант FAILED_PRECONDITION, который конкретно означает, что бесплатный уровень недоступен в вашем регионе без подключения биллинга. Google ограничивает доступ к бесплатному уровню Gemini API в определённых странах, и попытка использования API из этих регионов без платного плана возвращает ошибку 400, а не 403, которую вы могли бы ожидать. Если вы видите эту ошибку и находитесь за пределами Соединённых Штатов, подключение платного плана в Google AI Studio часто решает проблему немедленно.

Для ошибок 403 следуйте этой последовательности проверки. Во-первых, убедитесь, что ваш API-ключ действителен и не был отозван, проверив его в Google AI Studio. Во-вторых, убедитесь, что ключ не был публично раскрыт — если Google обнаруживает ключ в публичном репозитории или на веб-сайте, он автоматически отзывается по соображениям безопасности. В-третьих, убедитесь, что Generative Language API включён в вашем проекте Google Cloud. В-четвёртых, если вы используете сервисный аккаунт, проверьте, что IAM-разрешения включают необходимые роли для доступа к Gemini API. Подробное пошаговое руководство по получению и настройке API-ключа можно найти в нашем руководстве как получить API-ключ Nano Banana Pro.

Ошибка 404 NOT_FOUND в контексте Gemini API обычно означает, что вы ссылаетесь на модель, которая не существует на вызываемом эндпоинте. Имена моделей меняются по мере развития версий — убедитесь, что используете актуальный идентификатор модели. На февраль 2026 года идентификаторы моделей с поддержкой изображений включают gemini-2.0-flash-exp и его варианты. Проверьте официальную страницу моделей для получения актуальных доступных идентификаторов.

Создание устойчивых к ошибкам приложений

Если вы дочитали до этого раздела, вы понимаете, как работает каждая ошибка по отдельности. Следующий шаг — создание приложения, которое обрабатывает все ошибки без ручного вмешательства. Обработка ошибок продакшен-уровня для Nano Banana Pro требует комбинации трёх паттернов: экспоненциальный бэкофф с джиттером для транзиентных ошибок, цепочка фолбэков моделей для проблем с ёмкостью и логика circuit breaker для устойчивых сбоев.

Следующий класс на Python реализует все три паттерна в одном переиспользуемом компоненте. Вы можете добавить его в свой проект и вызывать resilient_generate() вместо прямого вызова API. Он обрабатывает rate limits с правильным бэкоффом, автоматически переключается на резервные модели при перегрузке основной и прекращает повторные попытки при обнаружении устойчивых сбоев, чтобы не тратить время и ресурсы.

python
import time import random from google import genai class ResilientImageGenerator: """Production-ready Nano Banana Pro wrapper with full error handling.""" def __init__(self, api_key): self.client = genai.Client(api_key=api_key) self.models = [ "gemini-2.0-flash-exp", # Primary "gemini-2.0-flash", # Fallback ] self.consecutive_failures = 0 self.circuit_open_until = 0 def generate(self, prompt, max_retries=5): # Circuit breaker check if time.time() < self.circuit_open_until: remaining = int(self.circuit_open_until - time.time()) raise Exception(f"Circuit open. Retry in {remaining}s") for model in self.models: for attempt in range(max_retries): try: response = self.client.models.generate_content( model=model, contents=prompt ) self.consecutive_failures = 0 return response, model except Exception as e: err = str(e) if "429" in err or "RESOURCE_EXHAUSTED" in err: wait = min(2**attempt + random.uniform(0, 1), 64) time.sleep(wait) elif "503" in err or "UNAVAILABLE" in err: break # Try next model elif "500" in err or "INTERNAL" in err: wait = min(2**attempt + random.uniform(0, 1), 32) time.sleep(wait) elif "SAFETY" in err: raise # Don't retry safety blocks else: raise # All models failed self.consecutive_failures += 1 if self.consecutive_failures >= 3: self.circuit_open_until = time.time() + 300 raise Exception("All models and retries exhausted")

Паттерн circuit breaker заслуживает особого внимания. После трёх последовательных полных отказов по всем моделям код прекращает попытки запросов на 5 минут. Это предотвращает расход API-вызовов и квоты rate limit во время затяжных сбоев. Цепь автоматически восстанавливается после периода охлаждения, и нормальная работа возобновляется без ручного вмешательства. В продакшен-системах вы должны логировать каждую активацию circuit breaker в вашу систему мониторинга — если цепь размыкается часто (более двух раз в день), это сигнализирует о системной проблеме, которая может потребовать архитектурных изменений, таких как добавление очереди сообщений между приложением и API или подключение резервного провайдера генерации изображений.

Для мониторинга в продакшене отслеживайте минимум четыре метрики: общее количество запросов в минуту, процент ошибок по категориям (429/503/500/SAFETY), среднее время ответа и состояние circuit breaker. Оповещение о всплесках ошибок выше 20% даёт раннее предупреждение о деградации сервиса, прежде чем ваши пользователи это заметят. Большинство разработчиков обнаруживают пробелы в обработке ошибок только во время реальных инцидентов — реализация структурированного логирования и мониторинга с первого дня обеспечивает наличие данных, необходимых для быстрой диагностики и устранения проблем.

Для разработчиков на Node.js эквивалентный паттерн следует тем же принципам. Классифицируйте каждый тип ошибки, применяйте соответствующую реакцию (ожидание для rate limits, переключение модели при перегрузке, остановка для блокировок безопасности) и отслеживайте паттерны сбоев для логики circuit breaker. Задержки повторных попыток, порядок фолбэка моделей и пороги circuit breaker должны быть настраиваемыми через переменные окружения, а не зашиты в код, что позволяет корректировать поведение в продакшене без редеплоя приложения.

Когда ничего не помогает — альтернативы и следующие шаги

Иногда, несмотря на применение всех исправлений из этого руководства, ошибки продолжаются. Это не ваша вина — это отражает реальность того, что Nano Banana Pro остаётся на стадии Pre-GA с присущими ограничениями надёжности, которые находятся за пределами контроля отдельного разработчика. Умение вовремя прекратить отладку и переключиться на альтернативы — действительно ценный навык.

Признаки того, что стоит прекратить пробовать тот же подход: ваша ошибка сохраняется более 30 минут через несколько циклов повторных попыток, вы видите PROHIBITED_CONTENT вместо IMAGE_SAFETY (что указывает на блокировку самой категории контента, а не на ложное срабатывание), или одновременно возникают несколько типов ошибок (что предполагает более широкую деградацию сервиса). В этих ситуациях продолжение повторных попыток тратит ваше время без улучшения результата.

Альтернативные провайдеры API предлагают практический запасной вариант. Сервисы вроде laozhang.ai обеспечивают доступ к тем же моделям генерации изображений Gemini через агрегированную инфраструктуру по цене примерно $0.05 за изображение, часто с более высокими эффективными лимитами rate limit, поскольку квота объединяется между аккаунтами. Для продакшен-приложений наличие настроенного и готового к активации резервного провайдера во время сбоев основного — это стандартная практика. Вы можете ознакомиться с доступными альтернативами Gemini Image API для подробного сравнения провайдеров, цен и показателей надёжности.

Пути эскалации в экосистеме Google включают: сообщение о постоянных проблемах через Google AI Developer Forum, где сотрудники Google активно мониторят обсуждения, проверку Google Cloud Status Dashboard на предмет текущих инцидентов, затрагивающих сервисы Gemini, и если вы на платном уровне — подачу тикета поддержки через Google Cloud Console для приоритетной помощи.

Долгосрочные перспективы оптимистичны — Google продолжает инвестировать в расширение инфраструктуры Nano Banana Pro, и каждый крупный релиз улучшает как ёмкость, так и частоту ошибок. Переход от экспериментальной к продакшен-инфраструктуре продолжается, и инженерная команда Google активно работает над выделением ресурсов для нагрузки генерации изображений. Но пока модель не достигнет статуса General Availability с гарантированными SLA и опубликованными обязательствами по аптайму, встраивание устойчивости к ошибкам и резервирования провайдеров в ваше приложение — это не просто хорошая практика, а необходимость для любого приложения, где надёжность генерации изображений важна для ваших пользователей.

FAQ

Почему Nano Banana Pro постоянно пишет «overloaded», хотя я отправляю всего несколько запросов?

Ошибка 503 «overloaded» не связана с вашим индивидуальным использованием — она отражает глобальную ёмкость серверов. Когда миллионы пользователей одновременно обращаются к API Nano Banana Pro, серверы достигают предела независимо от того, как мало запросов лично вы отправляете. Наиболее надёжное решение — планировать запросы в непиковые часы (с 00:00 до 06:00 UTC), когда частота ошибок падает ниже 8% по данным сообщества за начало 2026 года.

Как исправить ошибку IMAGE_SAFETY для легитимного контента?

Google использует двухуровневую систему безопасности. Уровень 1 (настраиваемый) можно изменить, установив safety_settings на BLOCK_NONE в вашем API-вызове. Уровень 2 (ненастраиваемый) сканирует сгенерированное изображение и не может быть отключён. Для блокировок Уровня 2 перефразируйте промпт с явным указанием художественного стиля, например «digital illustration» или «watercolor painting», добавьте контекст сцены и повторите попытку — стохастическая природа генерации означает, что тот же промпт может пройти при последующих попытках. Вероятность успеха для пограничного контента составляет примерно 70-80%.

Взимается ли плата за неудачные API-запросы, возвращающие ошибки?

Нет. За запросы, возвращающие 429 (rate limit), 503 (перегрузка) или 400/403 (клиентские ошибки), плата не взимается, поскольку генерация не состоялась. Google взимает плату только за запросы, которые завершились успешно и вернули сгенерированное изображение. Однако если запрос был частично обработан до сбоя с 500 или 504 таймаутом, правила тарификации для частично завершённых операций могут отличаться — проверьте панель использования Google AI Studio для уточнения. Это означает, что вы можете реализовать агрессивную логику повторных попыток с уверенностью: даже если ваш код повторяет неудачный запрос десятки раз, плата будет взиматься только за одну успешную попытку, которая в итоге вернёт изображение.

Каковы текущие лимиты rate limit для Nano Banana Pro на бесплатном уровне?

На февраль 2026 года пользователи бесплатного уровня получают примерно 2 изображения в минуту (IPM), 15 запросов в минуту (RPM) и около 50 запросов в день (RPD) для моделей генерации изображений. Эти лимиты сбрасываются в полночь по тихоокеанскому времени для дневных квот и каждые 60 секунд для поминутных квот. Обратите внимание, что Google скорректировал квоты 7 декабря 2025 года, поэтому лимиты, которые вы помните из прошлого, могут уже не быть актуальными. Ключевая деталь, которую многие разработчики упускают: эти лимиты применяются одновременно по API-ключу и по проекту — если у вас несколько API-ключей в одном проекте Google Cloud, они делят один пул квот, а не имеют независимые лимиты.

Стоит ли переходить на платный уровень, чтобы избежать ошибок rate limit?

Это зависит от вашего паттерна использования и типа ошибок, с которыми вы сталкиваетесь. Если вы получаете ошибки 429 более нескольких раз в час при обычном использовании, план Tier 1 за $19.99/месяц даёт 10 IPM и 250 RPD — пятикратное улучшение, которое устраняет большинство проблем rate limit для малых и средних проектов. Для продакшен-приложений, обслуживающих несколько пользователей, Tier 2 или выше с 20+ IPM и 1000+ RPD стоит инвестиций. Однако переход на платный уровень не помогает с ошибками 503 перегрузки серверов или блокировками IMAGE_SAFETY, которые вызваны совершенно другими факторами — ёмкостью серверов и фильтрацией контента соответственно. Прежде чем переходить на платный уровень, проверьте, действительно ли ваши ошибки — это 429 rate limits, или это ошибки 503 перегрузки, которые неправильно идентифицированы, поскольку решения для каждой из них принципиально различаются.

В чём разница между ошибкой 503 и ошибкой 429?

Ошибка 429 означает, что лично вы превысили выделенную квоту — она вызвана вашим паттерном использования и разрешается через 60 секунд (для лимитов RPM) или в полночь по тихоокеанскому времени (для дневных лимитов). Вы можете предотвратить ошибки 429, перейдя на более высокий уровень или распределив запросы во времени. Ошибка 503 означает, что серверы Google перегружены для всех пользователей глобально — она вызвана не вашим использованием и разрешается, когда общий спрос на серверы снижается. Никакой переход на более высокий уровень не исправит ошибки 503, потому что проблема не в вашей квоте, а в ёмкости инфраструктуры Google. Стратегии исправления совершенно разные: для 429 — ждать или перейти на более высокий уровень; для 503 — планировать запросы в непиковые часы (00:00-06:00 UTC) или реализовать логику фолбэка моделей для автоматического переключения на альтернативные модели Gemini.

Поделиться:

laozhang.ai

Один API, все модели ИИ

AI Изображения

Gemini 3 Pro Image

$0.05/изобр.
-80%
AI Видео

Sora 2 · Veo 3.1

$0.15/видео
Async API
AI Чат

GPT · Claude · Gemini

200+ моделей
Офиц. цена
Обслужено 100K+ разработчиков
|@laozhang_cn|$0.1 бонус