Validate Payload Node: FlowTimeoutError Timeout running workflow

Hello Losant Team,

I’ve noticed that my Validate Payload Node that validates payload received after HTTP request with a schema creates a error in a workflow: **FlowTimeoutError** Timeout running workflow
image

I am wondering what could cause it since I am providing Schema and Path for Errors… Schema seems to be matching payloads. At least with online checkers I used. I remember last time it was an issue with an “error” word in a payload name. FYI, I have “error” again in my payload names. Could it be the reason? Should I rename my payload paths?

Hi @Alexander_Kondrov,

I believe your error is occurring in the HTTP Node. I targeted your URL with a GET request in Postman and was left loading until a timeout occurred:

When this issue does occur, however, there is an error entry for the HTTP Node:

I do not think using “error” on the payload will cause your workflow to have any problems. :smile:

Please let me know if this is not the issue!
Julia

Hi Julia,

Thank you for follow-up edits. It looks better now. May I ask why HTTP node is causing a workflow error? I use a timeout value and a error path. Should’t workflow just continue with a error message written to an error path? The thing is I am using Losant API node to set-up a disconnection status for the device if HTTP request fails. Because of this error my device is always shows as connected even it does not respond… Please advise

1 Like

Hi Julia,

I would like to ask if there are any updates on the workflow error. It seems as some sort of bug to me. Could you confirm it? I think the workflow should not stop even if the link is offline. Just in case, my HTTP node settings are like that:
image

@Alexander_Kondrov,

I just chatted with our Engineering Team, and I have an answer for you :slight_smile:

You are correct. “Store HTTP Error at Payload Path” is working. This is why you see the NodeTimeoutError in your error path. This means that your HTTP request within the HTTP Node timed out. The limit is 30 seconds.

But! The after the HTTP Node ( looks like somewhere within the Validate Payload Node), your Workflow timed out.

Here, you see two back to back errors, not one. In this case, it looks like your HTTP Node (30-second limit) took too long, then your Workflow (60-second limit )didn’t have enough time to run after that.

Ways to fix:

  • Set a smaller timeout on your HTTP Node(s).
  • Break up your Workflow into smaller workflows.
  • You can do also Workflow to Workflow communication using the Workflow Trigger Node. (Workflow to Workflow does count against your payload limit)

Let me know if this makes sense. :slight_smile:

2 Likes

Hi Taron,

Thank you for the detailed review of my request. You are right. Basically, I needed to run three HTTP requests in a row within a workflow’s loop in order to form an update of one device (this is defined by the device’s API). Every my HTTP node had a timeout of 30 seconds. So once the device was not available - the duration of the workflow string was exceeding 60 seconds at the end.

I have decreased the timeouts of every HTTP node and re-arranged logic triggering Losant API (Connection Status) node.

I think it would be good to add a workflow 60 sec timeout reminder somewhere in the platform. For some reason, I was missing this piece of information :slight_smile:

2 Likes

Hi All,

A follow up question in this topic.
I just realized that 60 seconds timeout for the workflow limits one of the data acquisition algorithms I put in place. Basically, I try to read data from N devices inside of a loop node by using HTTP Node. Let’s assume 5 first devices are not responding and the accumulated timeout of those first 5 devices (5 devices*15 seconds = longer than a workflow timeout) will break the workflow and it will prevent other N-5 being read. Is there any way to avoid these congestion? I can see an option to trigger an external workflow for the poll of each device. Is it a good option? If yes, is there a way to pass fully a payload from the parent workflow to the child workflow using Workflow Trigger node/Workflow Payload String Template, so I can just easily copy the logic without correcting variable paths in a newly created child workflow?

@Alexander_Kondrov,

Yes, in the Workflow Reply Node, you have the option to pay a payload to the next workflow:

Workflows trigger other workflows via a Virtual Button. Also, a Workflow can trigger itself.

We want to encourage Workflow -> Workflow communication. So, yes, it’s a good mechanism for you to reuse logic.

1 Like

Hi Taron,

Thank you. I missed this reference at the first look to the docs.