All field notes

Field note · found 31 October 2026

n8n test passes with pinned data but the real run fails

A pinned node in n8n returns the data you pinned and never evaluates its own parameters, so a test run with pinned Sheets, Gmail or Twilio nodes can pass while every expression on those nodes is broken.

Test record: five pinned runs by Fractional HQ on 27 October 2026, then the first real run on 31 October 2026 on n8n 2.23.4 with real Google Sheets and Gmail. Pin behaviour was also checked on 26 October 2026. n8n version not recorded for 26 and 27 October. Not tested: every node type, the reason the Stripe Trigger ignored its pin.

Symptom

On 27 October 2026 we ran our missed-call text-back template five times with pinned data, and all five runs passed. On 31 October we ran it for the first time against real Google Sheets and Gmail, on n8n 2.23.4, and no call was logged. Twelve Sheets and Gmail nodes failed on the same expression, an error we describe in a separate note.

Why it happens

n8n's documentation on data pinning says that a pinned node is not executed and its pinned data is used in its place. Its parameters are therefore never evaluated, which matches what we saw, so a broken expression in a sheet column mapping or an email body cannot fail. The nodes with credentials are the ones we pin, because they are the ones that need an account, and in this template they were where the broken expressions lived.

What a pinned run does test

It is still a real engine run. The Code, IF, Filter and Set nodes execute, in the real order, on the data you pinned. That makes pinned runs good for checking the logic between the nodes that talk to the outside world.

Three details from our own test runs on 26 October 2026 are worth knowing. The Stripe Trigger ignored its pin, so we pinned the node after it. Pins on the Gmail Trigger and the Webhook node worked. Workflow static data could be read and written in a pinned run, but it was only kept between runs once the workflow was active.

The fix

Before we call a template tested, we run each path on a test n8n with real test accounts, including the paths that send. Pinned runs come first and are quick, and the real run is the one that counts.

Pinned data should also come out of a file before it is shared. As we understand it, the exported JSON carries the pins with it, so whoever imports the workflow gets the author's test data back from those nodes in their own test runs. The workflow checker flags pinned data for that reason.

How we found it

The five pinned runs and the first real run were on the same template four days apart. The real run used real Google Sheets and Gmail on our test n8n.

What we did not establish

We did not test every node type, so we cannot say that no pinned node ever evaluates anything. We did not record the n8n version for the runs on 26 and 27 October. We only saw the Stripe Trigger ignore its pin on that one instance, and we did not look for the reason.

Written by Fractional HQ from its own runs. If your n8n behaves differently, email hello@fractionalhq.uk and we will correct the note.