I don't understand why this attitude is so prevalent in the tech industry. The person writing the upgrade script knows if upgrades can't support n+2 jumps and it takes about 30s to build in a check:
if(target_version > current_version + 1) // not allowed
It's more work to add it to the docs than it is to put a fail-fast check in the upgrade script, so why put it in the docs where 250k+ admins need to be aware of the limitation and avoid it?
It might be creating 100k hours of waste on the sysadmin side to save 30m of work on the dev side. I just don't get it.
This is, of course, exactly what Nextcloud does. It will most certainly refuse to run and break your system. And yes, it also refused that 3-4 years ago.
Not saying it never breaks anything, but since 2016 we for example check PHP versions and other infra to not update to a broken system. We rewrote the updater in 2016 for this purpose. It's possible this has had a bug at some point of course - but it is more likely that the original poster who had this issue had this in the ownCloud times before 2016.
It might be creating 100k hours of waste on the sysadmin side to save 30m of work on the dev side. I just don't get it.