Помилки й що робити

Коли прогін падає, у результатах видно текст помилки. Тут зібрані ті, що трапляються найчастіше, — з причиною й тим, що саме виправити. Знайти свою найпростіше пошуком: скопіюйте текст помилки в поле пошуку вгорі.

Вираз не дав булеве значення

Condition must evaluate to a boolean value

Вузол «Умова» вимагає, щоб вираз повертав рівно true або false. Найчастіші причини:

  • у виразі є посилання на поле, якого немає, — порівняння з порожнечею дає не булеве, а порожнє значення;
  • у сухому прогоні вузол, що пише кудись назовні, підмінюється заглушкою, і поля з його виходу зникають;
  • умова написана як outputs.x.value замість порівняння, наприклад outputs.x.value > 0.

Перевірити просто: тимчасово поставте true — якщо прогін пішов далі, річ у виразі. Пам'ятайте, що всередині [...] контекстом є елемент, а не флоу, тож на флоу треба посилатися через $$: data[id = $$.outputs.incoming.body.id].

Вираз не дав рядок

Text formatter must evaluate to a string

Шаблон у «Форматуванні тексту» — це цілий вираз JSONata, а не текст із підстановками. Літерали беруться в лапки й склеюються через &:

"Замовлення " & outputs.incoming.body.orderNumber & " готове"

Просто написати Замовлення {{...}} тут не можна — це синтаксична помилка.

Помилка у виразі

Condition evaluation failed · Text formatting failed · JSONata mapping failed · Unable to cast value to a number

Вираз не розібрався або впав під час обчислення. Часті випадки:

  • $number("немає") — приведення нечислового тексту валить весь прогін. Перед приведенням перевірте вміст: $contains($trim(x), /^[0-9]+$/);
  • ідентифікатор вузла з дефісом читається як віднімання — беріть його в лапки: outputs."my-node";
  • незакрита дужка або лапка в шаблоні.

Тіло не стало валідним JSON

Rows are not valid JSON after substitution · Expected valid JSON after resolving template · Filters must be a JSON object

Після підстановки {{…}} у тілі запиту вийшов не JSON. Дві типові причини:

  • підстановка порожня, і в тілі лишилось {"statusId":,"orderId":1} — значення просто зникло, бо вираз дав порожнечу;
  • вираз повертає рядок, а ви очікували масив чи число. $string(...) навколо масиву псує JSON: лапки всередині екрануються. Приберіть $string і дозвольте підстановці серіалізувати значення самій.

Перевірка: скопіюйте тіло, підставте очікувані значення руками й прогоніть через будь-який валідатор JSON.

Адреса не підходить

The request URL is not a valid address · URL is required for HTTP request node · must use http or https
  • Порожня змінна: якщо адреса складається як {{variables.BASE_URL}}/orders, а змінну не заповнили, лишається /orders — це не адреса. Заповніть змінні флоу.
  • Стала адреса в гібридному полі мусить бути в лапках: "https://api.example.com/orders". Без лапок поле читається як вираз.

Адреса не публічна

is not a public address

Флоу виконуються в хмарі, тож localhost, 127.0.0.1 і адреси внутрішньої мережі недосяжні. Потрібен публічний домен або тунель.

Немає відповіді вчасно

did not answer within N seconds · timed out after · Could not reach

Зовнішня служба не відповіла в межах відведеного часу. Що можна зробити:

  • підняти timeoutMs вузла, якщо служба справді повільна;
  • увімкнути повтори на вузлі — але не для CRM з жорсткими лімітами: повтор після 429 подовжує блокування;
  • перевірити, чи служба взагалі приймає запити з нашої мережі.

Служба відмовила

Telegram refused the message · Slack refused the message · HTTP request refused

Запит дійшов, але служба його не прийняла. Дивіться текст після двокрапки — там відповідь самої служби. Найчастіше це неправильний токен, немає прав на чат або застарілий ідентифікатор отримувача.

Не заповнене обов'язкове поле

is required for · needs a key · Give the list to work on · Say which value to sum

Вузол не має того, без чого не працює. Відкрийте вузол — поле буде порожнім. Якщо воно заповнене виразом, то вираз дав порожнечу: подивіться на вихід попереднього вузла в результатах прогону.

Флоу занадто великий або зациклений

exceeded the maximum of 1000 node executions · is already running in this chain · Cycle detected
  • Цикл: флоу мусить бути без циклів — з'єднання назад до попереднього вузла заборонене.
  • Ліміт кроків: тисяча виконань вузлів на прогін, рахуючи підфлоу. Найчастіше це цикл ForEach з великим списком: зменшіть limit у запиті або розбийте роботу на кілька прогонів.
  • Підфлоу: підфлоу не може викликати сам себе, навіть через посередника.

Немає з чого почати

No start node found in the flow

У флоу немає тригера, або він не з'єднаний із рештою. Додайте вузол із групи «Тригери» й проведіть від нього зв'язок.

Ліміт тарифу вичерпано

quota · Ліміт вичерпано

Місячна квота прогонів або операцій ШІ закінчилась. Подивіться Ліміти й тарифи — там видно, що входить у тариф і як докупити пакет.

Якщо помилки тут немає

Відкрийте док перевірки внизу редактора: вкладка Діагностика знаходить проблеми ще до запуску й веде на потрібну сторінку довідки, а вкладка Прогони показує вихід кожного вузла — видно, на якому саме обірвалось і з якими даними.