Why N8N in new version forcing me to use first()

:frowning: !-- Hey! The fastest way to find solutions is by using the :magnifying_glass_tilted_right: search function at the upper right.

If your question hasn’t been asked before, please follow the template below. Skip the questions that are not relevant to you. →

Describe the problem/error/question

New versions of n8n are forcing me to use fist() when before it just show an warning… My production workflows works properly using item, work pefectly fine before but know with new n8n version are generating a lot of errors… :frowning:

In previous version i use some work around to deal with this issue and beside n8n show some warings my work flows work properly, But know if i have to use fist() All may workflow and work and time is going to the drain…

What is the error message (if any)?

I have to use first() and some times said that I have to unpin data (but i dont pinned any data at any node at all)… it frustrating. I

Please share your workflow

(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)

Share the output returned by the last node

Information on your n8n setup

  • n8n version: 1.83
  • Database (default: SQLite): SQLite
  • n8n EXECUTIONS_PROCESS setting (default: own, main): own
  • Running n8n via (Docker, npm, n8n cloud, desktop app): docker
  • Operating system: ubuntu 24

hello @Adan_Palma

What do you mean by “it forces”? It has some validation hints in the code node, but you can ignore them.

thanks for you reply… In my case send an error that I have to use first(), and i dont know why…

Can you show the workflow and the error?

You can select all nodes with ctrl+a, copy it with ctrl+c. Then past the content here after pressing button </> with ctrl+v.

Hi Adan_Palma (and barn4k)!

We are facing the same issue and I had to roll n8n back to an older version.
Basically, we had a number of N Webhooks combined in a Merge node. E.g. then in a later node, when trying to reference a specific node BEFORE the merge, I couldn’t do Webhook.item but only Webhook.first() would work. This in turn led to a a series of it’s own problems which forced me to rollback to an older version (we are now running on n8n:1.92.0).
I am not sure, whether this is exact scenario was the only problematic one, as we did not really had much time to investigate.

It definitely cannot be a problem with flow, as we have used the exact same setup for months of usage now without any problems.
We would really appreciate a clarification and possibly a hint, whether this issue will be taken up in near future OR alternative implementation suggestions.

1 Like

I rolled back to 1.68.0 I know I am using a really olf version but I am really scared to upgraded because all release generate to bugs and my workflows are in productions? In that version you are all your js node works properly and you can use item?

May be I should move to a supported N8n version enterprise

Unfortunately n8n enterprise also doesn’t provide “stable” or long term support versions.
Every update is a gamble unfortunately.

Yes, I don’t upgrade when the release has alot of new feature, I wait for releases that are just bug patches at end of minor release.

to help further

Semantic versioning in n8n#

n8n uses semantic versioning. All version numbers are in the format MAJOR.MINOR.PATCH. Version numbers increment as follows:

  • MAJOR version when making incompatible changes which can require user action.
  • MINOR version when adding functionality in a backward-compatible manner.
  • PATCH version when making backward-compatible bug fixes.
    Release notes | n8n Docs

so persoanlly if it jumps a minor, I wait for the last patched version so just before a minor release happen, and try to upgrade every 3 to 6 months.

Once I do upgrade, I take a snapshot of my prod, and throughly test it, sometimes thing don’t work this is normal in software development espeically at the edge of great features such n8n offer.

I would recommend to take developmenet of production enviroment workflows like software developemnt, once you implement these steps you actually end up with battle tested production deployments that work, and have a route to upgrade / test / patch deploy. this does take effort but the payoff is huge, it avoids tons of technical debt espiecally in highly critical systems, ones that costs alot when you have downtime.

The latest version is for production use but could start to announce long term support version soon maybe :slight_smile: be amazing if they did.

Hope this helps.

1 Like

Without the workflow I can’t say anything other than the .item and .first()/.last() method works as expected. If it doesn’t work, then seems your workflow has some issues with proper item linking

Here’s a super condensed version of my flow:

This only is one of more examples. The error popped up while trying to access the Webhook Trigger’s data (i.e. “Booking”) from the Execute Workflow node “Abfragen”.
After we updated to the latest version, we had to replace item with first() in this expression:
{{ $('Booking').item.json.body.vorname }}

Ummmm not really sure. I have multiples databases records and each record go throught multiples steps and i need to reference the soecific record and in some node simply items not work and forced to use fist but if i use first it means that always reference the first record in my loop and thats is no the idea

Thats is for me the main issue of use N8N as serious and production platform for workflow process it like a lotery or gambling. Their quality
And testing its really bad.

Thanks. Could clarify this please. 1.94.1 is minor or patch? I am not really sure

That’s not the right way of using merge node. You have multiple webhooks, but they all won’t be executed in one execution. And by design you can’t access nodes which hasn’t been executed previously. The right way is to rebuild the first part so you can use the common nodes (which will be executed in any case. In the example it’s a Merged node ):

Share the workflow. Seems you have issues with proper item pairing

I have a similar problem. Those Edit Fields nodes should just “repackage” the outputs from the triggers?

They will act as metadata fields. The logic behind this is that all your nodes after the Merged one don’t care which trigger has been fired. They will read the input from the common node (that will be executed for each trigger in any way), and we will populate the input with an additional field to distinguish the right trigger so that all the next nodes will know which trigger fired