Обзор распространённых кодов ошибок Veo 3.1
429 RESOURCE_EXHAUSTED — превышение лимитов
Это одна из самых частых проблем при работе с Veo 3.1:
Причины:
- Исчерпана квота запросов (Rate Limit)
- Достигнут лимит параллельных запросов
- Перегрузка сервиса в часы пик
Решения:
import time
import random
def retry_with_backoff(func, max_retries=5):
"""Повторные попытки с экспоненциальной задержкой"""
for i in range(max_retries):
try:
return func()
except ResourceExhausted:
if i == max_retries - 1:
raise
wait_time = (2 ** i) + random.random()
print(f"Ждём {wait_time:.2f} сек перед повтором...")
time.sleep(wait_time)
Практические советы:
- Генерируйте видео в непиковые часы (23:00-06:00 по тихоокеанскому времени)
- Используйте очереди для распределения нагрузки
- Установите интервалы между запросами минимум 30-60 секунд

Коды безопасных фильтров (Support Codes)
Когда Veo 3.1 блокирует контент, вы получаете 8-значный код поддержки. Вот полный справочник:
Child (58061214, 17301594)
Проблема: Запрос содержит упоминание детей или несовершеннолетних.
Как обойти:
# ❌ Заблокируется
prompt = "Маленький мальчик играет в парке"
# ✅ Обходной вариант
prompt = "Молодой взрослый человек наслаждается солнечным днём в городском саду"
# Или используйте параметр (требуется белый список проекта)
config = {
"personGeneration": "allow_all"
}
Celebrity (29310472, 15236754)
Проблема: Генерация узнаваемых персон запрещена без специального разрешения.
Решение:
- Опишите общие черты вместо конкретных имён
- Используйте абстрактные описания ("известный предприниматель" → "успешный бизнесмен в костюме")
- Для коммерческого использования свяжитесь с Google для получения доступа
Sexual (90789179, 43188360)
Фильтр: Любой сексуальный или намекающий контент.
Примеры триггеров:
- Купальники, нижнее бельё
- Романтические/интимные сцены
- Части тела крупным планом
Violence (61493863, 56562880)
Блокируется:
- Сцены драк, оружие
- Кровь, телесные повреждения
- Агрессивное поведение
Альтернативы:
# ❌ Заблокируется
"Боец наносит удар противнику в ринге"
# ✅ Пройдёт
"Два спортсмена практикуют боевые приёмы под присмотром тренера"
Dangerous (62263041)
Включает инструкции по:
- Созданию оружия или взрывчатых веществ
- Опасным экспериментам
- Вредоносным действиям
PII — личные данные (92201652)
Триггеры:
- Номера кредитных карт
- Адреса, номера телефонов
- Социальные номера, паспортные данные
Ошибка 403 Forbidden
Возможные причины:
- API не активирован
gcloud services enable aiplatform.googleapis.com --project=YOUR_PROJECT
- Недостаточно прав IAM
# Проверьте роли
gcloud projects get-iam-policy YOUR_PROJECT
# Необходимые роли:
# - roles/aiplatform.user
# - roles/serviceusage.serviceUsageConsumer
- Регион не поддерживается
# Только эти регионы работают с Veo
SUPPORTED_REGIONS = [
"us-central1",
"europe-west4"
]
Практическое руководство по устранению проблем
Шаг 1: Идентификация типа ошибки
def diagnose_error(error):
"""Диагностика типа ошибки"""
error_msg = str(error)
if "PUBLIC_ERROR_MINOR" in error_msg:
return "Внутренняя ошибка — повторите через 5-10 минут"
elif "429" in error_msg or "RESOURCE_EXHAUSTED" in error_msg:
return "Лимит запросов — подождите или используйте прокси-сервис"
elif "Support Code:" in error_msg:
code = extract_support_code(error_msg)
return f"Фильтр безопасности — код {code}, измените промпт"
elif "403" in error_msg:
return "Проблемы с доступом — проверьте настройки API и IAM"
return "Неизвестная ошибка — обратитесь в поддержку"
Шаг 2: Автоматическая обработка
import re
import time
def safe_generate_video(client, prompt, max_retries=3):
"""Генерация с автоматической обработкой ошибок"""
for attempt in range(max_retries):
try:
response = client.generate_video(prompt=prompt)
return response
except Exception as e:
error_type = diagnose_error(e)
print(f"Попытка {attempt + 1}: {error_type}")
if "Support Code:" in str(e):
# Упростить промпт при срабатывании фильтра
prompt = simplify_prompt(prompt)
print(f"Упрощённый промпт: {prompt}")
elif "429" in str(e):
# Экспоненциальная задержка для лимитов
wait_time = (2 ** attempt) * 60
print(f"Ожидание {wait_time} секунд...")
time.sleep(wait_time)
elif "PUBLIC_ERROR_MINOR" in str(e):
time.sleep(300) # 5 минут
else:
raise # Пробросить неизвестные ошибки
raise Exception("Не удалось сгенерировать после всех попыток")
def simplify_prompt(prompt):
"""Упрощение промпта для обхода фильтров"""
# Удалить потенциально проблемные слова
sensitive_words = ['ребёнок', 'дети', 'знаменитость', 'оружие', 'кровь']
for word in sensitive_words:
prompt = prompt.replace(word, '')
return prompt.strip()
Шаг 3: Мониторинг и логирование
import logging
from datetime import datetime
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
def log_generation_attempt(prompt, success, error=None):
"""Логирование попыток генерации для анализа"""
log_entry = {
'timestamp': datetime.now().isoformat(),
'prompt': prompt[:100], # Первые 100 символов
'success': success,
'error': str(error) if error else None
}
if success:
logger.info(f"✅ Успех: {log_entry}")
else:
logger.error(f"❌ Ошибка: {log_entry}")
# Сохранить в файл для анализа
with open('veo_logs.jsonl', 'a') as f:
f.write(json.dumps(log_entry) + '\n')
Рекомендации по обходу ограничений
1. Используйте прокси-сервисы API
Для стабильной работы рекомендуется использовать проверенные прокси-сервисы:
APIYI (API.YI) — надёжный шлюз для китайских пользователей:
- ✅ Стабильное подключение без VPN
- ✅ Низкие цены + бесплатная пробная версия
- ✅ Поддержка всех моделей Google (включая Veo 3.1)
- ✅ Встроенный retry механизм
# Пример использования с APIYI
from openai import OpenAI
client = OpenAI(
api_key="ваш-ключ-api-yi",
base_url="https://api.gptsapi.net/v1"
)
# Вызов работает так же, как напрямую
response = client.chat.completions.create(
model="veo-3.1",
messages=[{"role": "user", "content": "Ваш промпт"}]
)
2. Оптимизируйте промпты
Правила безопасных промптов:
# ❌ Проблемный промпт
bad_prompt = """
Реалистичный портрет Илона Маска с детьми в офисе Tesla,
драматичное освещение, 4K, кинематографично
"""
# ✅ Безопасный промпт
good_prompt = """
Профессиональный бизнесмен средних лет в современном офисе,
естественное освещение, корпоративная атмосфера
"""
Шаблон безопасного промпта:
[Общее описание действия] + [Обстановка] + [Технические параметры]
- Избегайте имён и узнаваемых черт
- Используйте нейтральные возрастные категории ("взрослый", "подросток 18+")
- Описывайте действия, а не людей
3. Автоматизация с учётом пиковых часов
from datetime import datetime
import pytz
def is_peak_hour():
"""Проверка, не час ли пик в PST"""
pst = pytz.timezone('America/Los_Angeles')
now = datetime.now(pst)
hour = now.hour
# Часы пик: 9-11 утра, 1-3 дня, 7-9 вечера
peak_hours = [
(9, 11), (13, 15), (19, 21)
]
return any(start <= hour < end for start, end in peak_hours)
def smart_schedule_generation(prompts):
"""Умное планирование генерации"""
if is_peak_hour():
print("⚠️ Час пик — ожидание до оптимального времени...")
# Подождать до окончания часа пик или поставить в очередь
return schedule_for_off_peak(prompts)
else:
print("✅ Оптимальное время — начинаем генерацию")
return generate_immediately(prompts)
FAQ по ошибкам Veo 3.1
Q: Почему я постоянно получаю PUBLIC_ERROR_MINOR?
A: Это общая ошибка, которая может означать:
- Временную недоступность GPU
- Проблемы с аудио-процессингом
- Перегрузку сервиса
Решение: Подождите 10-15 минут и повторите. Если проблема сохраняется более часа — упростите промпт.
Q: Как узнать, какое именно слово вызвало фильтр безопасности?
A: Google не раскрывает конкретные триггеры, но вы можете:
- Постепенно удалять части промпта
- Заменять подозрительные слова синонимами
- Использовать онлайн-инструменты проверки контента
Q: Можно ли генерировать видео с известными брендами?
A: Нет, это нарушает политику использования. Замените на общие описания ("спортивный автомобиль" вместо "Ferrari").
Q: Что делать, если 403 ошибка сохраняется после включения API?
A: Проверьте:
# 1. Статус API
gcloud services list --enabled | grep aiplatform
# 2. Биллинг активен
gcloud beta billing accounts list
# 3. Квоты не исчерпаны
gcloud compute project-info describe --project=YOUR_PROJECT
Заключение
Работа с Veo 3.1 требует понимания его ограничений и умения обходить распространённые ошибки. Ключевые выводы:
- Фильтры безопасности — самая частая причина отказов. Используйте нейтральные формулировки.
- Ограничения ресурсов — работайте вне часов пик или используйте прокси-сервисы.
- PUBLIC_ERROR_MINOR — почти всегда решается простым ожиданием.
- Автоматизация — внедрите retry логику и логирование для отслеживания паттернов.
Для стабильной работы рекомендуем использовать APIYI — это избавит от многих головных болей с квотами и доступностью.
Успешной генерации! 🎬
Подробный разбор кода фильтрации безопасности Veo 3.1
Когда генерация видео блокируется фильтром безопасности, вы получите примерно такое сообщение об ошибке:
Veo could not generate videos because the input image violates
Vertex AI's usage guidelines. Support codes: 15236754
Полная таблица Support Code
| Support Code | Категория | Описание |
|---|---|---|
| 58061214, 17301594 | Child | Контент с участием детей, требуется personGeneration=allow_all |
| 29310472, 15236754 | Celebrity | Реалистичное изображение знаменитостей, требуется добавление проекта в белый список |
| 64151117, 42237218 | Video Safety | Видеоконтент нарушает стандарты безопасности |
| 90789179, 43188360 | Sexual | Контент сексуального характера |
| 61493863, 56562880 | Violence | Контент, связанный с насилием |
| 62263041 | Dangerous | Потенциально опасный контент |
| 57734940, 22137204 | Hate | Контент, разжигающий ненависть |
| 78610348 | Toxic | Токсичный/вредоносный контент |
| 32635315 | Vulgar | Вульгарный контент |
| 92201652 | PII | Персональные данные (номера карт, адреса и т.д.) |
| 74803281, 29578790, 42876398 | Other | Другие проблемы безопасности |
| 89371032, 49114662, 63429089, 72817394 | Prohibited | Нарушение политики использования |
Распространённые HTTP коды ошибок
429 RESOURCE_EXHAUSTED
Это одна из самых частых ошибок — слишком много запросов или исчерпана квота.
Причины возникновения:
- Слишком высокая частота запросов от одного пользователя
- Системное ограничение на количество запросов
- Исчерпана дневная квота
Решение:
import time
def generate_with_retry(prompt, max_retries=3):
for i in range(max_retries):
try:
# Вызов Veo API
response = veo_generate(prompt)
return response
except ResourceExhaustedError:
wait_time = (2 ** i) * 10 # Экспоненциальная задержка
print(f"Превышена квота, ждём {wait_time} секунд...")
time.sleep(wait_time)
raise Exception("Исчерпано количество попыток")
403 Forbidden
Частые причины:
- Generative Language API не включён в проекте
- Проект не добавлен в необходимый белый список
- Недействительные учётные данные для аутентификации
Шаги решения:
- Включите Generative Language API в Google Cloud Console
- Проверьте, есть ли у проекта доступ к Veo API
- Убедитесь в корректности API Key или учётных данных сервисного аккаунта
Другие распространённые ошибки
Общая ошибка "Something Went Wrong"
Это универсальная ошибка, которая может скрывать множество различных проблем:
| Категория причин | Описание | Вероятность |
|---|---|---|
| Перегрузка серверов | Превышение мощности на 300-400% в час пик | Наиболее частая |
| Нехватка GPU-ресурсов | Сложные запросы потребляют 95% памяти GPU | Частая |
| Ложное срабатывание системы безопасности | Обычные слова триггерят фильтры | Частая |
| Проблемы с сетью | Таймауты соединения, DNS-проблемы | Реже |
Слова, часто вызывающие ложные срабатывания:
- "fire" (может восприниматься как "стрелять")
- "shot" (может восприниматься как "выстрел")
- "strike" (может восприниматься как "удар/атака")
- "execution" (может восприниматься как "казнь")
"This generation might violate our policies"
Предупреждение о нарушении политики, но часто это ложное срабатывание. Способы решения:
- Переформулируйте промпт — избегайте двусмысленных выражений
- Удалите определённые фразы — уберите потенциально чувствительные описания
- Генерируйте поэтапно — сначала создайте простую версию, затем постепенно добавляйте детали
Лучшие практики обработки ошибок Veo 3.1

Пример кода: полная обработка ошибок
import time
from enum import Enum
class VeoErrorType(Enum):
RESOURCE_EXHAUSTED = "429"
FORBIDDEN = "403"
SAFETY_FILTER = "safety"
PUBLIC_ERROR_MINOR = "public_error_minor"
UNKNOWN = "unknown"
def handle_veo_error(error_response):
"""Обработка ошибок Veo 3.1"""
error_code = error_response.get("code", "")
error_message = error_response.get("message", "")
support_code = extract_support_code(error_message)
if "429" in str(error_code):
return VeoErrorType.RESOURCE_EXHAUSTED, "Слишком много запросов, рекомендуется подождать и повторить"
if "403" in str(error_code):
return VeoErrorType.FORBIDDEN, "Недостаточно прав, проверьте настройки API"
if support_code:
category = get_safety_category(support_code)
return VeoErrorType.SAFETY_FILTER, f"Фильтр безопасности: {category}"
if "PUBLIC_ERROR_MINOR" in error_message:
return VeoErrorType.PUBLIC_ERROR_MINOR, "Внутренняя ошибка обработки, рекомендуется упростить запрос и повторить"
return VeoErrorType.UNKNOWN, error_message
# Маппинг кодов фильтров безопасности
SAFETY_CODES = {
"58061214": "Child", "17301594": "Child",
"29310472": "Celebrity", "15236754": "Celebrity",
"90789179": "Sexual", "43188360": "Sexual",
"61493863": "Violence", "56562880": "Violence",
"62263041": "Dangerous",
# ... больше кодов
}
Совет: Используйте Veo 3.1 через APIYI (apiyi.com) — платформа предоставляет стабильный посреднический сервис, позволяющий обойти часть официальных ограничений и повысить успешность генерации.
Часто задаваемые вопросы
Q1: Как решить ошибку PUBLIC_ERROR_MINOR?
Это общая ошибка, указывающая на внутренний сбой обработки. Рекомендации:
- Подождите 5-10 минут и повторите попытку
- Упростите промт, снизьте его сложность
- Избегайте генерации в часы пиковой нагрузки
- Если ошибка повторяется, попробуйте использовать промежуточный API-сервис
Q2: Почему нормальные промты срабатывают на фильтр безопасности?
Фильтр безопасности Veo 3.1 иногда бывает "слишком чувствительным", что приводит к ложным срабатываниям. Частые триггеры включают слова "fire", "shot", "strike" и подобные. Решение — использовать альтернативные формулировки, например, заменить "fire in the fireplace" на "burning logs in the hearth".
Q3: Как посмотреть подробную причину ошибки?
В API-запросе включите параметр includeRaiReason: true — это позволит получить более детальную информацию о причине срабатывания фильтра. Полученный Support Code можно сверить с таблицей в этой статье, чтобы узнать конкретную категорию блокировки.
Резюме
Ключевые моменты по кодам ошибок Veo 3.1:
- PUBLIC_ERROR_MINOR: Общая внутренняя ошибка, обычно решается ожиданием и повторной попыткой или упрощением запроса
- Support Code (8-значное число): Код фильтра безопасности, сверьте с таблицей, чтобы понять причину блокировки
- 429 RESOURCE_EXHAUSTED: Превышен лимит частоты запросов, используйте экспоненциальную задержку при повторных попытках
- Лучшие практики: Избегайте часов пик, используйте лаконичные промты, внедряйте механизм повторных попыток
При постоянных ошибках можно попробовать работать с Veo 3.1 через APIYI apiyi.com — платформа предлагает более стабильный опыт работы с API и профессиональную техническую поддержку.
参考资料
⚠️ 链接格式说明: 所有外链使用
资料名: domain.com格式,方便复制但不可点击跳转,避免 SEO 权重流失。
-
Veo on Vertex AI 官方文档: Google Cloud 官方 API 参考文档
- 链接:
docs.cloud.google.com/vertex-ai/generative-ai/docs/model-reference/veo-video-generation - 说明: 查看完整的 API 参数和响应格式
- 链接:
-
Veo 负责任 AI 指南: 安全过滤器和使用准则
- 链接:
docs.cloud.google.com/vertex-ai/generative-ai/docs/video/responsible-ai-and-usage-guidelines - 说明: 了解安全过滤代码的完整列表
- 链接:
-
Veo 3.1 常见错误排查: 社区整理的错误处理指南
- 链接:
skywork.ai/blog/llm/veo-3-1-troubleshooting-common-errors-2 - 说明: 更多实战经验和解决方案
- 链接:
作者: 技术团队
技术交流: 欢迎在评论区讨论,更多资料可访问 APIYI apiyi.com 技术社区
