useProjectConfig was set to
false, it's not a good idea to update Craft on a live site because, as you've discovered, errors sometimes happen.
There's even an allowUpdates config setting that we recommend people setting to
false on the live site just so someone doesn't accidentally update Craft from the control panel.
The safer workflow is to have a dev/staging/test environment where you can perform the update first, verify that everything still works fine and then you can deploy the update files to the live site with a much smaller chance of something going wrong.
If you've decided to use Project Config, which it seems you have, then you should really not be doing updates on the live site from the control panel.
And you should also have allowAdminChanges set to
false so no one can even make Craft settings changes from the control panel.
At that point, Project Config should be enabled in all of your environments and your
composer.lock files should be deployed to your live site along with a deployment process that runs
composer install on the live site post-deployment.