Node Output correct in expression editor but not in execution

Describe the issue/error/question

My scenario starts with an “on execute” node that sets a value for “AmazonURL”. I want to use that value in the body of an HTTP post request. The value appears correct in the expression editor, but when I run the flow it’s empty. What am I doing wrong?

Please share the workflow

Workflow has some sensitive data but I’ve attached some screenshots.

Information on your n8n setup

  • Version 0.214.2 self hosted on an Amazon EC2 instance
  • Database is MySQL hosted on Amazon RDS

The exact text of the body field in the HTTP module is:
“expiresAt”: 1678144827000,
“expiredURL”: “{{ $json[“Links”][“path”] }}”,
“originalURL”: “{{ $node.Start.json.AmazonURL }}”

I cannot figure out why OriginalURL is blank when I execute.

Hey @Lee_S,

Is it correct on the first run and wrong in other runs? It is possibly worth noting that the pinned data isn’t there for background runs so if another workflow was calling that one the value wouldn’t be used.

There must be something about pinned data that’s not intuitive to me. The way I’m thinking about it, setting up some “parameters” in the Start node by pinning data makes it very easy to update a scenario. But if that only works some of the time, that’s not a good practice.

This particular scenario was only run by hand, if that matters. Never activated, never on a schedule, never triggered by another job or webhook or anything.


That sounds fine it is only meant to work with manual runs, with your flow does it work the first time? We tend to ask for the json of the workflow as that allows us to see what is set in the nodes and saves some of the guess work on what expressions might be used.