Устранение ошибок в Shopify Flow
Shopify Flow помогает автоматизировать задачи и процессы в магазине, но при создании или редактировании рабочих процессов вы можете столкнуться с ошибками или достичь определенных лимитов. На этой странице описаны распространенные проблемы, с которыми вы можете столкнуться, например лимиты рабочих процессов и ошибки данных, а также даны рекомендации по их устранению. Понимание этих ошибок поможет вам устранять неполадки и обеспечивать бесперебойную работу ваших рабочих процессов.
На этой странице
Ошибки при создании рабочих процессов
При создании рабочего процесса могут возникать ошибки, не позволяющие его добавить. Ниже перечислены некоторые из таких ошибок.
Превышено количество рабочих процессов
При создании нового рабочего процесса может появиться ошибка «Вы достигли максимального лимита в 1000 рабочих процессов. Чтобы продолжить, удалите все неиспользуемые рабочие процессы и повторите попытку».
Flow ограничивает количество рабочих процессов в магазине до 1000. Учитываются как активные, так и неактивные рабочие процессы. Если вы достигли этого лимита и хотите создать новый рабочий процесс, удалите неиспользуемые или неактивные.
Если в вашем магазине было более 1000 рабочих процессов до введения этого ограничения, он может продолжать работать с их текущим количеством. Однако для создания новых рабочих процессов их число должно быть меньше установленного лимита.
Эта ошибка может возникать при выполнении ряда действий в приложении Flow:
- Создание нового рабочего процесса
- Дублирование рабочего процесса
- Импорт рабочего процесса
- Установка шаблона
Слишком много рабочих процессов для одного триггера
При активации рабочего процесса вы можете увидеть предупреждение о том, что в вашем магазине более 10 активных рабочих процессов, использующих один и тот же триггер.
Наличие множества рабочих процессов с общим триггером может вызвать проблемы с производительностью, так как при каждом наступлении события-триггера приложению Flow приходится обрабатывать все связанные с ним рабочие процессы. Такое разветвление может привести к увеличению времени выполнения и повышенному потреблению ресурсов.
Чтобы сократить количество рабочих процессов для одного триггера, рассмотрите следующие способы:
- Объедините рабочие процессы, использующие один и тот же триггер, в единый рабочий процесс с несколькими ветвями и условиями.
- Деактивируйте или удалите рабочие процессы, которые больше не нужны.
- Проверьте, можно ли для некоторых рабочих процессов использовать более конкретный триггер.
Ошибки при редактировании рабочих процессов
При редактировании рабочего процесса могут возникать ошибки, не позволяющие его сохранить. Ниже перечислены распространённые ошибки, которые могут возникнуть при редактировании рабочего процесса.
Данные не найдены
При добавлении нового действия в рабочий процесс может возникнуть ошибка «Данные не найдены»:

Эта ошибка возникает из-за того, что для многих действий, включая «Добавить теги к товару», требуется ресурс Shopify, например товар. Если этот ресурс недоступен, действие выполнить нельзя. Часто рабочие процессы могут содержать данные, которые похожи на требуемые, но на самом деле не являются ими.
В следующих разделах описаны распространённые сценарии, которые могут вызвать эту ошибку, и способы их решения.
Проблема 1. Действие «Получить данные» предоставило список, тогда как требовался один элемент
Часто рабочий процесс предоставляет список ресурсов Shopify, но действие допускает только один ресурс. Например, рабочий процесс предоставляет список товаров с помощью действия «Получить данные о товаре», но для действия «Добавить теги к товару» требуется один товар.
Чтобы устранить эту ошибку, можно добавить действие «Для каждого», чтобы пройтись по списку в цикле и вызвать действие для каждого элемента в нём. Этот пример иллюстрирует и ошибку, и её решение с помощью действия «Для каждого»:

Проблема 2. Триггер предоставил список, тогда как требовался один элемент
Аналогичная ошибка может возникнуть, когда для действия требуется один ресурс, а триггер предоставляет список. Например, для действия «Отметить заказ к выполнению как выполненный» требуется заказ к выполнению, но триггер исходит от заказа, который предоставляет список заказов к выполнению.
Чтобы устранить эту ошибку, как и в Проблеме 1, можно добавить действие «Для каждого», чтобы пройтись по списку в цикле и вызвать действие для каждого элемента в нём:

В качестве альтернативы можно использовать другой триггер, предоставляющий необходимый ресурс. Например, вместо триггера «Заказ создан» можно использовать триггер «Готовность заказа к выполнению», который предоставляет один заказ к выполнению.

Проблема 3. Триггер «Запланированное время» не предоставил данные
Триггер «Запланированное время» не предоставляет данные о ресурсах Shopify. Если вы попытаетесь подключить действия, требующие ресурсы Shopify, после этого триггера, то возникнет ошибка.
Чтобы устранить эту ошибку, добавьте действие, которое предоставляет необходимые данные, например «Получить данные о товаре». Как отмечалось в Проблеме 1, также необходимо добавить действие «Для каждого», чтобы пройтись в цикле по любому списку, возвращаемому действием получения данных.

Проблема 4. Триггер приложения не предоставил данные
Как и в Проблеме 3, некоторые триггеры, созданные приложениями, не предоставляют необходимые данные о ресурсах Shopify. Например, триггер «Отзыв создан» может предоставлять адрес электронной почты, но не объект клиента, который необходим для многих действий, таких как «Добавить теги клиенту».
Чтобы устранить эту ошибку, вы можете использовать действие «Получить данные», чтобы извлечь необходимый ресурс Shopify. Например, можно использовать действие «Получить данные о клиенте», чтобы получить объект клиента по адресу электронной почты, предоставленному триггером. Как и в других случаях, необходимо добавить действие «Для каждого», чтобы пройтись в цикле по любому списку, возвращаемому действием получения данных.
Если действие «Получить данные» недоступно, возможно, вам придётся связаться с разработчиком приложения и попросить его изменить триггер, чтобы он предоставлял необходимые данные.
Превышено количество шагов ожидания
При добавлении новых шагов ожидания в рабочий процесс может появиться ошибка «Рабочие процессы должны содержать не более 40 шагов ожидания».
Flow ограничивает количество шагов ожидания в рабочем процессе до 40. Если вы столкнулись с этой ошибкой, значит, вы превысили этот лимит. Чтобы решить проблему, удалите шаги ожидания в других частях рабочего процесса.
Если у вас уже были рабочие процессы, содержащие более 40 шагов ожидания до введения этого ограничения, они продолжат работать как положено. Однако чтобы добавить новые шаги ожидания, сначала нужно удалить существующие, чтобы их количество не превышало лимит.
Кроме того, общее время ожидания по всем шагам ожидания не может превышать 90 дней.
Превышен предельный размер значения поля конфигурации
При редактировании значения полей конфигурации в условиях рабочего процесса может появиться ошибка «Размер значения поля конфигурации должен быть менее 50 КБ».
Flow ограничивает размер значения поля конфигурации до 50 КБ. Если вы столкнулись с этой ошибкой, значит, вы достигли или превысили этот лимит. Чтобы решить проблему, сократите объём данных, добавляемых в это поле.
Если у вас уже есть поля конфигурации со значением 50 КБ или более, ваши рабочие процессы продолжат работать как положено. Однако чтобы внести изменения в рабочий процесс, необходимо скорректировать значение, вызывающее ошибку.
Ошибки при выполнении рабочего процесса
Если при запуске рабочего процесса возникает ошибка, он помечается как «Неудачный». Сообщение об ошибке отображается в деталях запуска. Ниже перечислены распространенные ошибки, с которыми вы можете столкнуться при сбое запуска рабочего процесса:
- Временные ошибки — это ошибки, которые возникают, когда Flow не может завершить задачу. Попытки выполнения повторяются до тех пор, пока задача не будет выполнена успешно или не будет достигнут лимит времени ожидания.
- Постоянные ошибки — это ошибки, которые возникают, когда Flow не может завершить задачу и ее выполнение не может быть повторено.
Временные ошибки
Временные ошибки — это ошибки, которые возникают, когда Flow не может завершить задачу. Попытки выполнения повторяются до тех пор, пока задача не будет выполнена успешно или не будет достигнут лимит времени ожидания. Например, если Flow не может связаться с партнером при выполнении действия коннектора, Flow несколько раз повторяет попытку выполнить задачу, прежде чем прекратить.
Повторные попытки распределены по времени, и задержка между ними постепенно увеличивается. Обычно, когда в рабочем процессе возникают временные ошибки, он надолго остается в статусе «Выполняется», пока повторяются попытки выполнить задачи.
Когда задача успешно выполняется с повторной попытки, рабочий процесс продолжается. Если при повторной попытке возникает постоянная ошибка, рабочий процесс завершается сбоем. Каждый раздел рабочего процесса имеет общий лимит выполнения 36 часов. Если шаг с временными ошибками не будет успешно завершен до достижения этого лимита, рабочий процесс завершится сбоем.
Рабочие процессы с шагами ожидания делятся на разделы, что влияет на расчет лимитов времени ожидания в рабочем процессе. Каждый раздел — это группа задач, которые выполняются вместе, и у каждого есть свой 36-часовой лимит времени. Например, если в рабочем процессе есть шаг ожидания в один час, то задачи до шага ожидания будут выполняться вместе в одном разделе, а задачи после него — в другом. Если в рабочем процессе несколько шагов ожидания, то задачи между каждым шагом ожидания будут выполняться вместе в одном разделе. Рабочие процессы без шага ожидания считаются одним разделом.
Единичные временные ошибки — это обычное явление. Однако если в рабочем процессе одна и та же временная ошибка постоянно возникает при нескольких запусках, то, возможно, его потребуется перенастроить.
Истекло время ожидания шага
Ошибки «Истекло время ожидания шага» обычно возникают, когда задача в рабочем процессе пытается запросить слишком много данных в рамках одного раздела. Эта ошибка часто возникает в рабочих процессах, которые используют циклы для обработки списков, особенно вложенных списков, слишком больших для быстрой обработки.
Когда возникает эта ошибка, триггер или шаг ожидания отображается со статусом «Повторная попытка».
Чтобы устранить эту проблему, проверьте условия, которые обращаются к спискам и вложенным спискам, и убедитесь, что они настроены правильно. Распространенная проблема — это условие, которое проверяет все товары в магазине, а не только товары в заказе.
Статус 5XX
Большинство действий Flow предполагают выполнение HTTP-вызовов. Иногда из-за проблем с сетью или сервером HTTP-вызовы могут завершаться сбоем и возвращать код ошибки от 500 до 599. Единичное возникновение такой ошибки не является проблемой, но ее постоянное повторение может указывать на проблему с сервером, обрабатывающим задачу, а не на то, как настроен шаг.
Ошибка этого типа чаще всего отображается для действия «Отправить HTTP-запрос», но может возникать и в большинстве других задач.
Ограничение вызовов GraphQL
Общий объем работы, выполняемой рабочим процессом, ограничен лимитами на вызовы API, которые частично определяются вашим тарифным планом. Обычно эти лимиты не достигаются, если только рабочий процесс не является очень сложным или не содержит непреднамеренной ошибки в своей структуре.
Ниже приведены примеры ситуаций, которые могут привести к этой ошибке:
- Liquid или условия в рабочем процессе используют цикл для обработки списка с большим объемом данных, например для проверки значений метаполей, содержащих HTML.
- Liquid или условия в рабочем процессе используют цикл для обработки большого списка, например для обработки
shop.ordersв большом магазине. - Рабочий процесс приводит к бесконечному циклу, в котором он постоянно создает новые запуски. Например, это может произойти, если в рабочем процессе используется триггер «Добавлены теги клиента» и действие «Добавить теги клиента».
При достижении лимита вы получите ошибку GraphQL throttled. Эта ошибка может повлиять на другие рабочие процессы при попытке их запуска, поэтому устраните ее немедленно, если она возникнет.
Постоянные ошибки
Постоянные ошибки — это ошибки, которые возникают, когда Flow не может завершить задачу и ее выполнение не может быть повторено. Например, если Flow не может отправить электронное письмо из-за недействительного адреса, попытка не повторяется. Вместо этого рабочий процесс завершается сбоем.
Обязательные поля id не заполнены
Для выполнения действий Shopify требуется один или несколько ресурсов, таких как товар, клиент или заказ. Если необходимый ресурс недоступен, действие не может быть выполнено должным образом. Например, заказ в панели администратора Shopify можно создать без клиента. Если вы запустите такое действие, как «Добавить теги клиента», оно завершится сбоем с этой ошибкой.
Чтобы предотвратить эту ошибку, добавьте перед действием условие для проверки существования ресурса. В предыдущем примере, если вы хотите отправить внутреннее электронное письмо в том же рабочем процессе, что и «Добавить теги клиента», вы можете либо поместить действие с электронным письмом перед шагом, который может завершиться сбоем, либо использовать один из следующих подходов:
Разместите действия в параллельных ветвях (когда из одного шага выходят 2 или более ветви):

Добавьте перед действием условие, чтобы проверить, указан ли клиент. Например, можно проверить, что поле order / customer / id не пустое и существует.

У Flow нет разрешения для доступа к вашему аккаунту Google Таблиц. Повторно подключите свой аккаунт.
Коннектор Google Таблиц требует, чтобы вы связали свой аккаунт Google с Flow для получения разрешения на запись в таблицу. Эта ошибка может возникать, когда у Flow нет разрешения на запись в таблицу, либо потому что аккаунт был отвязан от Flow, либо потому что этот аккаунт не имеет доступа к данной таблице.
Чтобы решить эту проблему, убедитесь, что аккаунт, используемый для коннектора, может открывать таблицу и имеет права на ее редактирование. Если подключен не тот аккаунт, вы можете отключить его и подключить новый.
Шаги:
- Откройте существующий или создайте новый рабочий процесс.
- Добавьте действие в рабочий процесс.
- Выберите коннектор Google Таблиц.
- Нажмите «Отключить», а затем — «Подключить», чтобы повторно подключить нужный аккаунт Google.
Получено действие Flow с недействительными свойствами. Клиент не согласен на получение маркетинговых материалов.
Действие «Отправить маркетинговое письмо» не отправляет электронные письма клиентам, которые не дали согласия на их получение, и приводит к постоянной ошибке, если рабочий процесс пытается это сделать.
Чтобы решить эту проблему, добавьте в рабочий процесс условие, которое проверяет статус подписки клиента. Перед отправкой маркетинговых писем вы можете убедиться, что клиенты согласились их получать. Следуйте инструкциям в разделе «Управление списком email-подписчиков».
Отсутствует ресурс типа [resource type]
Эта ошибка означает, что ресурс, например клиент или заказ, был удален до того, как рабочий процесс смог извлечь его данные. Чаще всего это происходит после шага ожидания, но также может произойти и на этапе триггера, если ресурс удаляется очень быстро после события триггера.
Получение уведомлений об ошибках
Если ошибки влияют на работу вашего магазина, вы можете настроить уведомления об их возникновении. Уведомления об ошибках можно создать как рабочий процесс с помощью триггера «Произошла ошибка рабочего процесса». Эти уведомления созданы так, чтобы минимизировать информационный шум, поэтому вы будете получать только одно уведомление для каждой версии рабочего процесса.
Для начала вы можете использовать один из следующих шаблонов:
- Получать оповещения Shopify при обнаружении ошибок в запусках рабочих процессов
- Получать уведомления по электронной почте при обнаружении ошибок в запусках рабочих процессов
- Получать уведомления в Slack при обнаружении ошибок в запусках рабочих процессов
Повторные запуски
В некоторых случаях запуск рабочего процесса может завершиться ошибкой или пройти не так, как задумано. После поиска и устранения неисправностей в соответствующем рабочем процессе прошлые запуски можно повторить вручную, чтобы ретроактивно исправить их результат. Подробнее о повторных запусках рабочих процессов.
Выполнение (частота ограничена)
В некоторых случаях рабочий процесс или рабочие процессы могут использовать слишком много ресурсов. Чтобы предотвратить возникновение проблем, Flow намеренно ограничивает выполнение запусков в вашем магазине, что может вызвать задержки и ошибки тайм-аута. Эту проблему можно решить, переписав неэффективные рабочие процессы — как правило, чтобы исправить ошибку, из-за которой процесс функционировал не так, как задумано.
Слишком долгое выполнение
Это сообщение означает, что запуски рабочего процесса выполняются очень долго. Обычно это происходит из-за использования в рабочем процессе большого объема данных, на извлечение которых Flow требуется много времени.
Такие случаи обычно вызваны глубокими путями запросов, которые проходят через несколько списков элементов (например, запрос всех метаполей для всех товаров во всех коллекциях, к которым принадлежит товар):

Это также часто связано с истечением времени ожидания на шаге триггера рабочего процесса.
Эффективность рабочих процессов, которые перебирают все метаполя, часто можно повысить, используя только определенное метаполе. Возможно, доступ к нескольким вложенным спискам (например, ко всем товарам во всех коллекциях, к которым относится товар) или особо крупным спискам (например, к определениям метаполей, которые содержат все метаполя для всех объектов) был получен непреднамеренно. Выбор правильного поля (один товар или одно метаполе объекта) может значительно повысить эффективность. В других случаях использование действия «Получить данные о товаре/заказе/клиенте» с фильтром запроса может значительно сократить количество используемых объектов, но при этом сохранить доступ к нужным.
Обработка слишком большого объема данных
Это сообщение указывает на то, что при запусках рабочего процесса создаётся большой объём данных. Обычно это происходит из-за сложных условий, проверяющих множество полей, как правило, на нескольких уровнях списков.
Например, такое условие, как «Хотя бы для одного тега этого клиента, хотя бы для одной позиции заказа, хотя бы для одного тега в этой позиции», может привести к выполнению множества проверок и созданию большого объема данных для отображения их результатов:

Сбой автоматических повторных попыток
Это сообщение означает, что запуски рабочего процесса постоянно завершаются сбоем из-за временной проблемы, но при последующих повторных попытках они редко завершаются успешно. Такое часто происходит, когда Admin API от Shopify или приложение партнера обрабатывает большой объем запросов.