Sorry, there is maybe a misunderstanding. We never force-upgrade the version of nodes in people’s workflows, but what we always did, is improve the existing versions of nodes. That could be fixing bugs, adding new resources, operations, options, and so on. If we had created a totally new version of the nodes every time, things would have become unmaintainable (but we are thinking about ways how to improve that in the future)
You and everybody else did not realize that because we always ensure they are not breaking existing behavior as that is for sure our top priority.
It was also not different in that case. There was however one difference, for the first time ever, did we add an additional output. I thought about it a lot and tested everything and tried to think about possible issues but could not think of any. But as it turns out, there is this one edge case (having the node in a sub-workflow and returning the data in the loop) where it actually causes problems and which I did overlook. So we will for sure never do that (adding additional outputs to an existing node version) ever again!
That this did happen is bad but sadly never 100% avoidable. Even though we try to get as close as possible by adding tests, improving processes, and so on. But no matter if it is the code in a node (like in this case) or any of the underlying code we constantly change everything. Also there we try very hard to make sure that nothing breaks, but no matter how hard we try, there will always be instances where we fail as n8n is a very complex application, and nobody is perfect.
So can sadly not promise there will not be issues again in the future. That said, we are obviously working hard on making sure that happens as little as possible and so constantly improve. Right now we are for example in the middle of changing our release processes. That involves many things, but one of the most important changes is how we label versions and how we back-port fixes. So very high level will we, in the future, have a clear stable version (lagging slightly behind + includes all bug fixes) and a more experimental one which includes all the new features and changes.
We, for sure, should have done that already a long time ago. But better late than never. And from that point, people can then finally decide themselves what they care about most. Having the latest features available or having the most stable version.
Until we finally have that officially in place, I would already suggest staying 1 or 2 minor versions behind to reduce the chance of hitting newly introduced bugs.
So really, thanks a lot for your feedback and for taking the time to share it with us!