A few times a year you will have to do a rebuild from the command line, as there are systems that Discourse depends on that need to be updated and are not part of the Discourse code itself. I have recently developed a dashboard that will do those command line rebuilds (as well as add/remove plugins, handle database upgrades, and some other stuff) from my dashboard’s web interface you can check out https://dashboard.literatecomputing.com/ or contact me for more information.
It’s generally recommended to stay on the tests-passed branch (which is what you are on already).
Mostly, if the upgrade from the web interface fails, you need to do a command line rebuild.