Workflow Troubleshooting
What workflow errors mean, like templates Skidle can't read, missing secrets, blocked addresses, and too many requests, and how to fix them.
"Body is not JSON" or "Headers is not JSON"
The JSON in a web request isn't valid once its {{ }} values are filled in. Common causes are a missing comma between two lines, a comma after the last item, single quotes instead of double quotes, or a { without a matching }. The editor shows this as you type, and you can't publish the workflow until it's fixed.
"cannot read {{ … }}"
Something inside {{ }} isn't valid JSONata. Common causes are two equals signs (==) instead of one (=), an unclosed bracket or quote, or a field key with a dash or space that isn't wrapped in backticks. Use Insert value to add paths without typing them. See Values and templates.
"has a {{ with no }}"
A {{ was opened but never closed. Every {{ needs a matching }}.
"No secret named … in this account"
The workflow uses {{ secrets.NAME }}, but no secret with that exact name is saved. Names are case-sensitive, so CRM_KEY and crm_key are different. Save the secret in Account under Secrets. See Secrets.
"… isn't an address workflows can call"
A web request step tried to reach an address on a private network, like localhost, 10.x.x.x, 192.168.x.x, or 169.254.x.x. Workflows can never call these addresses. Use the other system's public address instead.
"The server responded with 401" (or 403)
The other system refused the request because the key was missing or incorrect. Check the secret's value, and check the header name and format the API documentation asks for, like Authorization: Bearer … or X-Api-Key: ….
"The server responded with 400" (or 422)
The other system didn't accept what was sent. The server response usually explains why. To see it, add a step after the web request that emails you {{ $string(data.<step id>.body) }}, then compare the body you sent with the API documentation.
"The server didn't respond within 10 seconds"
The other system took longer than 10 seconds to respond. The step only tries once and doesn't retry, in case the first request already did something.
A web request to the workflow's address didn't start a run
- The workflow isn't published. Until it is, requests are saved as a test only, and the sender gets
"started": falsewith the reason. - Starts when is no longer set to A web request.
- The address was replaced using Create new address, and the other system still has the old one. It gets
404. - The sender got
429 Too Many Requests. Each address accepts 60 requests a minute and 5,000 a day. Wait the number of seconds in theRetry-Afterheader. - The body was over 256 KB (
413).
"No one currently matches …"
An Assign step was set to choose one person, and no one fits the chosen identities right now. Either they're empty, or everyone in them is hidden from assignments. The run is left unassigned.