Resolución de errores en Shopify Flow

Shopify Flow ayuda a automatizar tareas y procesos en la tienda, pero puedes encontrar errores o alcanzar ciertos límites al crear o editar flujos de trabajo. En esta página se explican problemas comunes que puedes enfrentar, como límites de los flujos y errores de datos, y se ofrece orientación para resolverlos. Entender estos errores puede ayudarte a solucionar problemas y a mantener los flujos de trabajo funcionando sin inconvenientes.

Errores cuando creas flujos de trabajo

Cuando creas un flujo de trabajo, pueden aparecer errores que impidan agregar uno nuevo. Estos son algunos de los errores que podrías encontrar:

Se superó el límite de flujos de trabajo

Cuando creas un flujo de trabajo nuevo, puede aparecer un error que dice Alcanzaste el límite máximo permitido de 1.000 flujos de trabajo. Para continuar, elimina los flujos de trabajo que no uses e inténtalo de nuevo.

Flow limita a 1.000 el número de flujos de trabajo que puede tener una tienda. Esto incluye los flujos activos e inactivos. Si llegas a este límite y quieres crear un flujo de trabajo nuevo, elimina los flujos que no uses o que estén inactivos.

Si la tienda tenía más de 1.000 flujos de trabajo antes de que se estableciera este límite, puede seguir operando con más de 1.000. Sin embargo, para crear flujos de trabajo nuevos, debes estar por debajo del límite.

Es posible que veas este error cuando realizas varias acciones en la app Flow:

  • Crear un flujo de trabajo nuevo
  • Duplicar un flujo de trabajo
  • Importar un flujo de trabajo
  • Instalar una plantilla
Demasiados flujos de trabajo en el mismo activador

Cuando actives un flujo de trabajo, es posible que veas una advertencia de que tu tienda tiene más de 10 flujos de trabajo activos que usan el mismo activador.

Tener muchos flujos de trabajo que comparten el mismo activador puede causar problemas de rendimiento, ya que cada vez que ocurre el evento del activador, Flow debe procesar todos los flujos de trabajo asociados. Esta distribución puede generar tiempos de ejecución más lentos y un mayor uso de recursos.

Para reducir la cantidad de flujos de trabajo en un solo activador, considera los siguientes enfoques:

  • Combina los flujos de trabajo que usan el mismo activador en un solo flujo de trabajo con múltiples ramas y condiciones.
  • Desactiva o elimina los flujos de trabajo que ya no sean necesarios.
  • Revisa si algunos flujos de trabajo podrían usar un activador más específico en su lugar.

Errores cuando editas flujos de trabajo

Cuando editas un flujo de trabajo, pueden aparecer errores que impiden guardar el flujo. Estos son errores frecuentes que podrías encontrar cuando editas un flujo de trabajo:

No se encontraron datos

Cuando agregas una acción nueva a un flujo de trabajo, puede aparecer un error que dice No se encontraron datos:

Error No se encontraron datos

Este error se produce porque muchas acciones, como Agregar etiquetas de producto, requieren un recurso de Shopify, como un producto. Si ese recurso no está disponible, la acción no puede ejecutarse. Es frecuente que los flujos de trabajo contengan datos parecidos a los requeridos, pero que en realidad no aporten lo necesario.

A continuación se describen escenarios comunes que pueden causar este error y cómo resolverlos.

Problema 1: Obtener datos proporcionó una lista cuando se necesitaba un único elemento

Con frecuencia, un flujo de trabajo proporciona una lista de recursos de Shopify, pero la acción solo admite un recurso único. Por ejemplo, el flujo proporciona una lista de productos mediante Obtener datos de producto, pero la acción Agregar etiquetas de producto requiere un único producto.

Para resolver este error, puedes agregar una acción Para cada para recorrer la lista y ejecutar la acción para cada elemento. Este ejemplo muestra tanto el error como la solución usando Para cada:

Error No se encontraron datos

Problema 2: El activador proporcionó una lista cuando se necesitaba un único elemento

Puede ocurrir un error similar cuando una acción requiere un único recurso pero el activador entrega una lista. Por ejemplo, Marcar una orden de preparación de pedido como preparada requiere una orden de preparación de pedido, pero el activador proviene de un pedido, que proporciona una lista de pedidos de preparación de pedidos.

Para resolver este error, como en el problema 1, puedes agregar una acción Para cada para recorrer la lista y ejecutar la acción para cada elemento:

Solución para pedidos de preparación de pedidos

Como alternativa, puedes usar un activador diferente que proporcione el recurso requerido. Por ejemplo, en lugar de usar el activador Pedido creado, puedes usar el activador Orden de preparación de pedido lista para preparar, que proporciona una sola orden de preparación de pedido.

Ejemplo del activador Orden de preparación de pedido lista para preparar

Problema 3: El activador Hora programada no proporcionó datos

El activador Hora programada no proporciona datos de recursos de Shopify. Si intentas conectar acciones que requieren recursos de Shopify después del activador, aparecerá el error.

Para solucionar este error, agrega una acción, como Get product data, que proporcione los datos necesarios. Como se indica en Issue 1, también debes agregar una acción For each para recorrer cualquier lista devuelta por una acción que obtiene datos.

Ejemplo de producto requerido faltante

Problema 4: Un activador de una app no proporcionó datos

De forma similar al problema 3, algunos activadores creados por apps no proporcionan los datos de recursos de Shopify requeridos. Por ejemplo, un activador "Reseña creada" puede proporcionar una dirección de correo electrónico pero no un objeto de Cliente, que es necesario para muchas acciones, como Agregar etiquetas de cliente.

Para resolver este error, quizá puedas usar una acción "Obtener datos" para obtener el recurso de Shopify que necesitas. Por ejemplo, puedes usar Obtener datos de cliente para obtener el objeto de cliente a partir de la dirección de correo electrónico que entrega el activador. Como en los demás problemas, también debes agregar una acción Para cada para recorrer cualquier lista que devuelva una acción que obtiene datos.

Si "Obtener datos" no es una opción, quizá debas contactar al equipo de desarrollo de la app para preguntar si pueden modificar su activador para proporcionar los datos requeridos.

Se superó el límite de pasos de espera

Cuando agregas nuevos pasos de espera al flujo de trabajo, puede aparecer un error que dice, Los flujos de trabajo deben tener 40 pasos de espera o menos.

Flow limita a 40 el número de pasos de espera permitidos en un flujo de trabajo. Si aparece este error, superaste ese límite. Para resolverlo, elimina pasos de espera en otras partes del flujo.

Si ya había flujos de trabajo con más de 40 pasos de espera antes de la introducción de este límite, el flujo seguirá funcionando como se espera. Sin embargo, para agregar pasos de espera adicionales, primero debes quitar los existentes para mantenerte por debajo del límite.

Además, el tiempo total de espera sumado en todos los pasos de espera no puede superar los 90 días.

Se superó el límite de tamaño del valor del campo de configuración

Cuando editas el valor de los campos de configuración dentro de condiciones en el flujo de trabajo, puede aparecer un error que dice, El valor del campo de configuración debe ser inferior a 50kB.

Flow limita el tamaño del valor de un campo de configuración a 50kB de datos. Si aparece este error, llegaste al límite o lo superaste. Para resolverlo, reduce la longitud de los datos que agregas a ese campo.

Si ya tienes campos de configuración con un valor de 50kB o más, los flujos de trabajo seguirán ejecutándose como se espera. Sin embargo, para hacer cambios en el flujo de trabajo, debes modificar el valor que causa el error.

Errores cuando se ejecuta un flujo de trabajo

Cuando una ejecución del flujo de trabajo encuentra un error, se marca como fallida. El mensaje de error se muestra en los detalles de la ejecución. Estos son errores frecuentes que puedes encontrar cuando falla una ejecución:

  • Transient errors son errores temporales que ocurren cuando Flow no puede completar una tarea. Se reintentan hasta que tienen éxito o alcanzan un límite de tiempo de espera.
  • Permanent errors son errores que se producen cuando Flow no puede completar una tarea y no se puede reintentar.

Errores transitorios

Los errores transitorios son errores temporales que ocurren cuando Flow no puede completar una tarea. Se reintentan hasta que tienen éxito o alcanzan un límite de tiempo de espera. Por ejemplo, si Flow no puede contactar a un partner cuando ejecuta una acción de conector, Flow vuelve a intentar la tarea varias veces antes de desistir.

Los reintentos se espacian y el retraso entre cada intento aumenta respecto del anterior. Por lo general, cuando un flujo de trabajo presenta errores transitorios, permanece en estado en ejecución durante mucho tiempo mientras reintenta las tareas.

Si una tarea se reintenta con éxito, el flujo continúa. Si una tarea reintentada tiene un error permanente, el flujo falla. Cada sección del flujo de trabajo tiene un límite máximo de ejecución de 36 horas. Si un paso con errores transitorios no se completa antes de alcanzar ese límite, el flujo falla.

Los flujos de trabajo con pasos de espera se dividen en secciones, lo que afecta cómo se calculan los límites de tiempo en un flujo. Cada sección es un grupo de tareas que se ejecutan juntas y tiene su propio límite de 36 horas. Por ejemplo, si un flujo tiene un paso de espera de una hora, las tareas antes del paso de espera se ejecutan juntas en una sección y las tareas después del paso de espera se ejecutan juntas en otra. Si un flujo tiene varios pasos de espera, las tareas entre cada paso de espera se ejecutan juntas en una sección. Los flujos sin un paso de espera se consideran una sola sección.

Es normal que aparezcan errores transitorios de forma esporádica. Sin embargo, si un flujo de trabajo encuentra el mismo error transitorio de manera constante en varias ejecuciones, quizá debas reconfigurarlo.

El paso agotó el tiempo de espera

Los errores Step timed out suelen ocurrir cuando una tarea del flujo de trabajo intenta consultar demasiados datos dentro de una sección. Este error es frecuente en flujos que recorren listas, en especial listas anidadas demasiado grandes para procesarse con rapidez.

Cuando ocurre este error, el activador o el paso de espera se muestra como retrying.

Para resolverlo, revisa las condiciones que acceden a listas y listas anidadas para confirmar que estén configuradas correctamente. Un problema común es una condición que verifica todos los productos de una tienda, en lugar de solo los productos de un pedido.

Estado 5XX

La mayoría de las acciones de Flow implican hacer llamadas HTTP. A veces, problemas de red u otros del servidor pueden hacer que las llamadas HTTP fallen y devuelvan un código de error entre 500 y 599. Que ocurra una vez no es un problema, pero si se repite, podría indicar un problema del servidor que procesa la tarea, más que de cómo está configurado el paso.

Este tipo de error se muestra con mayor frecuencia en la acción Send HTTP Request, pero puede ocurrir en la mayoría de las tareas.

GraphQL ralentizado

El volumen total de trabajo que puede completar un flujo de trabajo está limitado por los límites de solicitudes a la API, determined in part by your plan. Por lo general, no se alcanzan salvo que el flujo sea muy complejo o contenga un error de diseño involuntario.

Los siguientes ejemplos describen situaciones que pueden provocar este error:

  • Liquid o las condiciones del flujo de trabajo recorren una lista con gran cantidad de datos, como verificar valores de metacampo que contienen HTML.
  • Liquid o las condiciones del flujo de trabajo recorren una lista grande, por ejemplo, recorrer shop.orders en una tienda grande.
  • Un flujo de trabajo produce un bucle infinito en el que sigue creando nuevas ejecuciones del flujo de trabajo. Por ejemplo, esto puede ocurrir si el flujo usa el activador Customer tags added e incluye la acción Add customer tags.

Si se alcanza el límite, aparece un error GraphQL throttled. Este error puede afectar a otros flujos de trabajo cuando intentan ejecutarse, así que soluciónalo de inmediato si ocurre.

Errores permanentes

Los errores permanentes son errores que ocurren cuando Flow no puede completar una tarea y no se puede reintentar. Por ejemplo, si Flow no puede enviar un correo electrónico porque la dirección de correo no es válida, no reintenta la tarea. En su lugar, el flujo de trabajo falla.

Campos: id son obligatorios pero están vacíos

Las acciones de Shopify requieren uno o más recursos, como un producto, un cliente o un pedido, para ejecutarse. Si el recurso necesario no está disponible, la acción no puede ejecutarse como se espera. Por ejemplo, se puede crear un pedido en el panel de control de Shopify sin un cliente. Si ejecutas una acción como Add customer tags, la acción falla con este error.

Para evitar este error, agrega una condición antes de la acción para comprobar si el recurso existe. En el ejemplo anterior, si quieres enviar un correo electrónico interno en el mismo flujo de trabajo que Add customer tags, puedes colocar la acción de correo antes del paso que podría fallar o usar uno de los siguientes enfoques:

Coloca las acciones en ramas paralelas (donde de un paso salen dos o más ramas):

Ejemplo que muestra dos acciones en paralelo después de un activador.

Agrega una condición antes de la acción para comprobar si el cliente está presente. Por ejemplo, puedes verificar si order / customer / id is not empty and exists.

Ejemplo que muestra una condición que busca un ID.

Flow no tiene permiso para acceder a la cuenta de Google Sheets. Vuelve a conectar la cuenta.

El Google Sheets connector requiere vincular la cuenta de Google a Flow para tener permiso de escritura en la hoja. Este error puede ocurrir cuando Flow no tiene permiso para escribir en una hoja, ya sea porque la cuenta se desvinculó de Flow o porque esa cuenta no puede acceder a esa hoja.

Para solucionarlo, asegúrate de que la cuenta que usa el conector pueda abrir la hoja y tenga acceso de edición. Si está vinculada la cuenta incorrecta, puedes desconectarla y conectar otra.

Pasos:

  1. Abre un flujo de trabajo existente o crea uno nuevo.
  2. Agrega una acción al flujo de trabajo.
  3. Selecciona el conector Google Sheets.
  4. Haz clic en Disconnect y luego en Connect para volver a conectar la cuenta de Google correcta.
La acción de Flow recibió propiedades no válidas. El cliente no acepta recibir marketing.

La acción Send marketing email no envía correos a clientes que no han aceptado recibirlos y falla de forma permanente si el flujo de trabajo intenta hacerlo.

Para solucionarlo, agrega una condición en el flujo de trabajo que verifique el estado de suscripción de los clientes. Así, te aseguras de que hayan aceptado recibir correos de marketing antes de enviarlos. Sigue los pasos en Email subscriber list management.

Falta el recurso para [resource type]

Este error indica que se eliminó un recurso, como customer u order, antes de que el flujo de trabajo pudiera obtener sus datos. Por lo general, esto ocurre después de un paso de espera, pero también puede suceder en el activador si el recurso se elimina muy poco tiempo después de que ocurre el evento del activador.

Recibe una notificación cuando ocurra un error

Si los errores afectan las operaciones de la tienda, puedes configurar notificaciones para cuando ocurra un error. Puedes crear notificaciones de error como un flujo de trabajo usando el activador Workflow error occurred. Estas notificaciones están diseñadas para limitar el ruido, así que solo recibirás one notification per workflow version.

Para empezar, puedes usar una de estas plantillas:

Reintentar ejecuciones

En algunos casos, una ejecución de un flujo de trabajo puede presentar un error o no ejecutarse como se esperaba. Después de realizar la resolución de problemas y corregir los problemas en el flujo de trabajo relacionado, puedes volver a intentar manualmente las ejecuciones anteriores para corregir retroactivamente sus resultados. Más información sobre retrying workflow runs.

En ejecución (con limitación de tasa)

En algunos casos, uno o varios flujos de trabajo pueden usar demasiados recursos y, para evitar problemas, Shopify Flow limita intencionalmente las ejecuciones en la tienda, lo que puede causar demoras y errores por tiempo de espera. Puedes solucionarlo reescribiendo los flujos de trabajo ineficientes, generalmente para corregir un error que hacía que no funcionaran como se esperaba.

En ejecución durante demasiado tiempo

Este mensaje indica que las ejecuciones de un flujo de trabajo están tardando mucho en completarse. Normalmente se debe a que dentro del flujo de trabajo se usa una gran cantidad de datos que Shopify Flow tarda mucho en recuperar.

Estos casos suelen deberse a rutas de solicitud profundas que atraviesan varias listas de artículos (por ejemplo, solicitar todos los metacampos de todos los productos en todas las colecciones de las que forma parte un producto):

Ejemplo de un flujo de trabajo con ejecución prolongada.

Esto también suele estar relacionado con que el paso del activador de un flujo de trabajo exceda el tiempo de espera.

Los flujos de trabajo que recorren todos los metacampos suelen mejorarse si se usa un metacampo específico. Acceder a varias listas anidadas (como todos los productos en todas las colecciones de un producto) o a listas especialmente grandes (como las definiciones de metacampo, que contienen todos los metacampos de todos los objetos) puede haberse hecho sin querer, y seleccionar el campo correcto (un único producto o un metacampo específico de un objeto) puede mejorar significativamente la eficiencia. En otros casos, usar la acción "Get Product/Order/Customer Data" con un filtro de consulta puede reducir significativamente la cantidad de objetos usados y seguir accediendo a los relevantes.

Procesar demasiados datos

Este mensaje indica que las ejecuciones de un flujo de trabajo están generando una gran cantidad de datos. Normalmente se debe a condiciones complejas que verifican muchos campos, por lo general porque se revisan campos en varios niveles de listas.

Por ejemplo, una condición como "Para al menos una etiqueta de este cliente, para al menos una de las líneas de artículo del pedido, para al menos una etiqueta de la línea de artículo" puede hacer que se realicen muchas comprobaciones y que se genere una gran cantidad de datos para mostrar los resultados de esas comprobaciones:

Ejemplo de un flujo de trabajo que intenta procesar demasiados datos.

Reintentos automáticos fallidos

Este mensaje indica que las ejecuciones de un flujo de trabajo fallan repetidamente por un problema temporal, pero que no suelen completarse correctamente en los reintentos posteriores. Esto suele ocurrir cuando la Admin API de Shopify o la aplicación de un socio recibe un volumen alto de solicitudes.