-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
App manager stops working when an app needs to upgrade oC #16251
Comments
I think this hinders the UX. What do you think @jancborchardt ? |
@oparoz most definitely. Good catch and good analysis. I also ran into this in the past but was not sure it was because an update is required. Why are updates required in the first place? Shouldn't everything be up to date anyway? |
It's apps updates. If the version changes, oC goes through a mandatory, confusing upgrade, telling the user his just updated oC needs to be updated to the same version (#16272) |
When you click "Update" in the app manager it only downloads the latest code of that app. A DB update might still be needed. Maybe we should try and run the DB update within the same PHP call. Note that this would also temporarily switch OC into maintenance mode during the DB update, but that could be made transparent to the UI. The reason why the "update ceremony" is needed is mostly because during a DB upgrade we need to block any apps from accessing OC to avoid unpredictable results while the DB is in a in-between state. So all we can do is try to improve the UX while this happens. |
I suspect this is already happening, but the UI is not updated to let the user know he's in maintenance mode and needs to logout/login to perform the upgrade. |
Hmmm, possible. And then if the user quickly clicks on another "Install" button, the UI is not responsive. Maybe the UI should be disabled until the ajax call returns ? |
If the update would cause breakage, might be possible to detect with this approach: #17435 |
Well that's just another problem of our Ajax vs maintenance mode etc. |
Short term the update button should return a special response that tells the UI to redirect to the update page. Long term, the update button should attempt the database update directly, with additional failsafe mechanism that re-disable the app in case of "total breakage". |
not only the update button actually, "enable" can have the same effect if the app was previously enabled with an older database. |
Setting to high as this causes bad UX and is quite a common situation, especially after reenabling third party apps after a core update. |
When looking at this, could you make sure updating an app does not reset the theme in the config? It's really annoying and totally unnecessary when updating apps. |
@oparoz can you make a ticket specific for theme disabling ? It should be possible to detect that it's an "app update" vs "core update" and skip theme disabling in that case |
thanks |
Env
8.0.3
PHP 5.5
No encryption
Steps to reproduce
Expected result
You should be able to enable as many apps as you want or be warned at some point that you need to log out and back in before being able to enable more.
Actual result
After you've enabled a few apps, you may find yourself in a situation where you can't install any more app. You get an error message ("Error enabling the app") and the app manager stops working. You get a blank page when visiting the "enabled" or "disabled" tabs.
If you click on "Files", you'll be redirected to the upgrader, so it means an upgrade was required, but instead of being notified, the app manager stops working.
Logs
The text was updated successfully, but these errors were encountered: