Error-Proof Method of Upgrading from V13 - V14?

Does anyone have an error-proof method of upgrading from V13 - V14? I have tried every single method I have found in the forum and every single method leads to a different error. From upgrading python3.8 - 3.10 on Ubuntu 20.04 to outright OS upgrade to Ubuntu 22.04, all lead to various errors.

There seems to be no consensus on how to upgrade and unlike the V13 release, Frappe doesn’t seem to have put forward a standard process for upgrading to V14. The only method that seems okay at this point is creating a fresh V14 instance and restoring from a V13 backup but this method isn’t workable for most people as existing servers may have been primed and so setting up another server may not be an option. Any insight on how this can be achieved will be appreciated.

This may not be the answer you want to hear, but I think it’s the correct one: If you or your team are not able to understand, troubleshoot, and solve the error messages you’re seeing in the normal upgrade process, I would humbly suggest that you should not be upgrading to v14 for at least another 3-6 months. Just my two cents.

@peterg Thanks. It’s definitely not the answer I want to hear :grinning: but it is definitely what I know to be true. I understand the errors, I have troubleshot the errors but every possible solution leads to another problem and the core of the problem lies with commands within bench breaking during the upgrade.

Of course, I am staying away from upgrading my production instance for another few months at least but as a rule of thumb and especially if one has custom apps running, it is necessary to spin up a staging instance and test everything before even planning an upgrade on the production instance and this is exactly what I am trying to accomplish. This post is therefore to find anyone who may have gone through the process and was successful. Maybe their insights would help me figure out if anything is missing from what i have tried so far.

The short answer is that there cannot be an error-proof method of upgrading, at least not one that doesn’t involve the creation of a new server instance on a fixeddistro. There are just too many variables. I’ve upgraded a few instances, all successfully in the end, but there were always challenges. One instance needed a python upgrade; one instance had a pathing problem to find the right version of node; one was using an outdated version of certbot; and one choked on a schema patch for reasons I still don’t understand.

If you’re getting stuck on bench commands, there’s always a way around it. If all else fails, you can do the processes manually, though that takes a bit of digging to understand exactly what’s happening behind the scenes.