Nextcloud update failure

just ran the update to version Nextcloud (version 720). after it was done I tried to log back in and got this error message:

when i run ‘snap refresh nextcloud’ I get ‘error: unable to contact snap store’

when i run ‘snap run nextcloud.occ status’

  • installed: true
  • version: 27.0.1.2
  • versionstring: 27.0.1
  • edition:
  • maintenance: false
  • needsDbUpgrade: false
  • productname: Nextcloud
  • extendedSupport: false

any ideas?

Hi,

What kind of device is this?
Is it on latest system/installer (Settings - Updates)?
Can you send logs (Setings - Support)?

sorry, should have given you more info.
celeron mini ITX running ‘x64 Syncloud OS [Legacy BIOS]’ image
latest updates
log sent

i ran the update on my mirrored (backup) device and the update worked fine.

Were you on latest Nextcloud before the upgrade?
Do you still see the error?

From the logs:

OCP\\\\AppFramework\\\\Db\\\\MultipleObjectsReturnedException: Did not expect more than one result when executing: query \\\"SELECT * FROM `*PREFIX*notifications_settings` WHERE `user_id` = :dcValue1\\\"; \"}","userAgent":"--","version":"27.0.1.2"}

Not sure if that is the source of the issue.

What this says?

snap run nextcloud.occ status

And this:

systemctl status snapd

Just in case can you upgrade installer as I just fixed potential issue in it, and then try status command again.

probably comes from Notifications app, can you remove it?

upgraded the installer

snap run nextcloud.occ status

  • installed: true
  • version: 27.0.1.2
  • versionstring: 27.0.1
  • edition:
  • maintenance: false
  • needsDbUpgrade: false
  • productname: Nextcloud
  • extendedSupport: false

systemctl status snapd
● snapd.service - Snap Daemon
Loaded: loaded (/lib/systemd/system/snapd.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2023-07-29 15:32:34 UTC; 1min 53s ago
Main PID: 17118 (snapd)
Tasks: 10 (limit: 4915)
Memory: 18.6M
CGroup: /system.slice/snapd.service
└─17118 /usr/lib/snapd/snapd

Jul 29 15:32:34 syncloud snapd[17118]: overlord.go:277: Acquired state lock file
Jul 29 15:32:34 syncloud snapd[17118]: patch.go:64: Patching system state level 6 to sublevel 1…
Jul 29 15:32:34 syncloud snapd[17118]: patch.go:64: Patching system state level 6 to sublevel 2…
Jul 29 15:32:34 syncloud snapd[17118]: patch.go:64: Patching system state level 6 to sublevel 3…
Jul 29 15:32:34 syncloud snapd[17118]: daemon.go:247: started snapd/595 (series 16; classic; devmode) debian/10 (amd64) linux/4.19.0-8-amd64.
Jul 29 15:32:34 syncloud snapd[17118]: daemon.go:340: adjusting startup timeout by 1m15s (pessimistic estimate of 30s plus 5s per snap)
Jul 29 15:32:34 syncloud systemd[1]: Started Snap Daemon.
Jul 29 15:32:36 syncloud snapd[17118]: signing key public key id: hIedp1AvrWlcDI4uS_qjoFLzjKl5enu4G2FYJpgB3Pj-tUzGlTQBxMBsBmi-tnJR
Jul 29 15:32:36 syncloud snapd[17118]: database.go:800: Syncloud hack: failed signature verification: openpgp: invalid signature: hash tag doesn’t match
Jul 29 15:32:36 syncloud snapd[17118]: taskrunner.go:299: [change 1779 “Request device serial” task] failed: cannot add “account-key” assertion with primary key clashing with a trusted assertion: [hIe
lines 1-19/19 (END)

how do i remove the Notifications app?

sorry, delete my question on how to disable the notifications.

ran ‘snap run nextcloud.occ app:disable notifications’

seemed to fix the problem as i’m back in… thanks

just re-enabled notifications. seems to be working fine now.

1 Like

I have the same issue with mine too, though to far away to get to it to resolve it until tomorrow at the earliest. But the same error.

i think i’m still having issues when the notifications app is enabled. the desktop sync client has intermittent issues and when i use Floccus to sync my bookmarks. not sure yet what’s going on there.

Could you create an issue at Issues · nextcloud/server · GitHub
I cannot reproduce this, but I am not a heavy user of Nextcloud I only use Files and Calendar/Contacts.
While I have notifications app it does not produce any error, why do you need it?

Ok I did some investigating and discovered at least I think that it is TOTP actually conflicting, as i was able to log in with my secondary account that does not have TOTP enabled. Can you test that? It seems my logs now say SABRE failed and not notifications anymore (still not home to disable in person)

i’m not using TOTP but I wonder if it’s related somehow to notifiactions?

If you have openvpn app you could always ssh from the phone, I do it a lot

Yeah though i did not enable the port for it on the router

Interesting I think more apps you use on Nextcloud more risky the upgrade is as I think apps know too much about Nextcloud. On Syncloud level apps are very independent.

I never used TOTP Nexcloud app instead I use Authenticator on my phone. Probably we could add some independent TOTP app (like this GitHub - Bubka/2FAuth: A Web app to manage your Two-Factor Authentication (2FA) accounts and generate their security codes for example)

Trying to make sense of this after disabling TOTP and Notifications

Aug 01 02:21:06 syncloud Nextcloud[28002]: {"reqId":"YqMYYGe2369QAFU01LpX","level":3,"time":"2023-08-01T02:21:06+00:00","remoteAddr":"192.168.1.1","user":"marxistvegan","app":"core","method":"GET","url":"/apps/dashboard/","message":"{\"Exception\":\"OCP\\\\AppFramework\\\\Db\\\\MultipleObjectsReturnedException\",\"Message\":\"Did not expect more than one result when executing: query \\\"SELECT * FROM `*PREFIX*user_status` WHERE `user_id` = :dcValue1\\\"; \",\"Code\":0,\"Trace\":[{\"file\":\"/snap/nextcloud/720/nextcloud/lib/public/AppFramework/Db/QBMapper.php\",\"line\":361,\"function\":\"findOneQuery\",\"class\":\"OCP\\\\AppFramework\\\\Db\\\\QBMapper\",\"type\":\"->\",\"args\":[[\"OC\\\\DB\\\\QueryBuilder\\\\QueryBuilder\"]]},{\"file\":\"/snap/nextcloud/720/nextcloud/apps/user_status/lib/Db/UserStatusMapper.php\",\"line\":111,\"function\":\"findEntity\",\"class\":\"OCP\\\\AppFramework\\\\Db\\\\QBMapper\",\"type\":\"->\",\"args\":[[\"OC\\\\DB\\\\QueryBuilder\\\\QueryBuilder\"]]},{\"file\":\"/snap/nextcloud/720/nextcloud/apps/user_status/lib/Service/StatusService.php\",\"line\":153,\"function\":\"findByUserId\",\"class\":\"OCA\\\\UserStatus\\\\Db\\\\UserStatusMapper\",\"type\":\"->\",\"args\":[\"marxistvegan\"]},{\"file\":\"/snap/nextcloud/720/nextcloud/apps/user_status/lib/Service/JSDataService.php\",\"line\":60,\"function\":\"findByUserId\",\"class\":\"OCA\\\\UserStatus\\\\Service\\\\StatusService\",\"type\":\"->\",\"args\":[\"marxistvegan\"]},{\"function\":\"jsonSerialize\",\"class\":\"OCA\\\\UserStatus\\\\Service\\\\JSDataService\",\"type\":\"->\",\"args\":[]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/InitialStateService.php\",\"line\":68,\"function\":\"json_encode\",\"args\":[[\"OCA\\\\UserStatus\\\\Service\\\\JSDataService\"],4194304]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/InitialStateService.php\",\"line\":92,\"function\":\"provideInitialState\",\"class\":\"OC\\\\InitialStateService\",\"type\":\"->\",\"args\":[\"user_status\",\"status\",[\"OCA\\\\UserStatus\\\\Service\\\\JSDataService\"]]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/InitialStateService.php\",\"line\":143,\"function\":\"invokeLazyStateCallbacks\",\"class\":\"OC\\\\InitialStateService\",\"type\":\"->\",\"args\":[]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/TemplateLayout.php\",\"line\":295,\"function\":\"getInitialStates\",\"class\":\"OC\\\\InitialStateService\",\"type\":\"->\",\"args\":[]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/legacy/OC_Template.php\",\"line\":182,\"function\":\"__construct\",\"class\":\"OC\\\\TemplateLayout\",\"type\":\"->\",\"args\":[\"error\",\"\"]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/Template/Base.php\",\"line\":132,\"function\":\"fetchPage\",\"class\":\"OC_Template\",\"type\":\"->\",\"args\":[]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/legacy/OC_Template.php\",\"line\":331,\"function\":\"printPage\",\"class\":\"OC\\\\Template\\\\Base\",\"type\":\"->\",\"args\":[]},{\"file\":\"/snap/nextcloud/720/nextcloud/index.php\",\"line\":74,\"function\":\"printExceptionErrorPage\",\"class\":\"OC_Template\",\"type\":\"::\",\"args\":[[\"OCP\\\\AppFramework\\\\Db\\\\MultipleObjectsReturnedException\"],500]}],\"File\":\"/snap/nextcloud/720/nextcloud/lib/public/AppFramework/Db/QBMapper.php\",\"Line\":292,\"CustomMessage\":\"--\"}","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0","version":"27.0.1.2"}

Aug 01 02:21:06 syncloud Nextcloud[28002]: {"reqId":"YqMYYGe2369QAFU01LpX","level":3,"time":"2023-08-01T02:21:06+00:00","remoteAddr":"192.168.1.1","user":"marxistvegan","app":"core","method":"GET","url":"/apps/dashboard/","message":"{\"Exception\":\"OCP\\\\AppFramework\\\\Db\\\\MultipleObjectsReturnedException\",\"Message\":\"Did not expect more than one result when executing: query \\\"SELECT * FROM `*PREFIX*user_status` WHERE `user_id` = :dcValue1\\\"; \",\"Code\":0,\"Trace\":[{\"file\":\"/snap/nextcloud/720/nextcloud/lib/public/AppFramework/Db/QBMapper.php\",\"line\":361,\"function\":\"findOneQuery\",\"class\":\"OCP\\\\AppFramework\\\\Db\\\\QBMapper\",\"type\":\"->\",\"args\":[[\"OC\\\\DB\\\\QueryBuilder\\\\QueryBuilder\"]]},{\"file\":\"/snap/nextcloud/720/nextcloud/apps/user_status/lib/Db/UserStatusMapper.php\",\"line\":111,\"function\":\"findEntity\",\"class\":\"OCP\\\\AppFramework\\\\Db\\\\QBMapper\",\"type\":\"->\",\"args\":[[\"OC\\\\DB\\\\QueryBuilder\\\\QueryBuilder\"]]},{\"file\":\"/snap/nextcloud/720/nextcloud/apps/user_status/lib/Service/StatusService.php\",\"line\":153,\"function\":\"findByUserId\",\"class\":\"OCA\\\\UserStatus\\\\Db\\\\UserStatusMapper\",\"type\":\"->\",\"args\":[\"marxistvegan\"]},{\"file\":\"/snap/nextcloud/720/nextcloud/apps/user_status/lib/Service/JSDataService.php\",\"line\":60,\"function\":\"findByUserId\",\"class\":\"OCA\\\\UserStatus\\\\Service\\\\StatusService\",\"type\":\"->\",\"args\":[\"marxistvegan\"]},{\"function\":\"jsonSerialize\",\"class\":\"OCA\\\\UserStatus\\\\Service\\\\JSDataService\",\"type\":\"->\",\"args\":[]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/InitialStateService.php\",\"line\":68,\"function\":\"json_encode\",\"args\":[[\"OCA\\\\UserStatus\\\\Service\\\\JSDataService\"],4194304]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/InitialStateService.php\",\"line\":92,\"function\":\"provideInitialState\",\"class\":\"OC\\\\InitialStateService\",\"type\":\"->\",\"args\":[\"user_status\",\"status\",[\"OCA\\\\UserStatus\\\\Service\\\\JSDataService\"]]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/InitialStateService.php\",\"line\":143,\"function\":\"invokeLazyStateCallbacks\",\"class\":\"OC\\\\InitialStateService\",\"type\":\"->\",\"args\":[]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/TemplateLayout.php\",\"line\":295,\"function\":\"getInitialStates\",\"class\":\"OC\\\\InitialStateService\",\"type\":\"->\",\"args\":[]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/legacy/OC_Template.php\",\"line\":182,\"function\":\"__construct\",\"class\":\"OC\\\\TemplateLayout\",\"type\":\"->\",\"args\":[\"user\",\"dashboard\"]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/public/AppFramework/Http/TemplateResponse.php\",\"line\":213,\"function\":\"fetchPage\",\"class\":\"OC_Template\",\"type\":\"->\",\"args\":[[\"#app-dashboard\",null]]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/AppFramework/Http/Dispatcher.php\",\"line\":182,\"function\":\"render\",\"class\":\"OCP\\\\AppFramework\\\\Http\\\\TemplateResponse\",\"type\":\"->\",\"args\":[]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/AppFramework/App.php\",\"line\":183,\"function\":\"dispatch\",\"class\":\"OC\\\\AppFramework\\\\Http\\\\Dispatcher\",\"type\":\"->\",\"args\":[[\"OCA\\\\Dashboard\\\\Controller\\\\DashboardController\"],\"index\"]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/Route/Router.php\",\"line\":315,\"function\":\"main\",\"class\":\"OC\\\\AppFramework\\\\App\",\"type\":\"::\",\"args\":[\"OCA\\\\Dashboard\\\\Controller\\\\DashboardController\",\"index\",[\"OC\\\\AppFramework\\\\DependencyInjection\\\\DIContainer\"],[\"dashboard.dashboard.index\"]]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/base.php\",\"line\":1071,\"function\":\"match\",\"class\":\"OC\\\\Route\\\\Router\",\"type\":\"->\",\"args\":[\"/apps/dashboard/\"]},{\"file\":\"/snap/nextcloud/720/nextcloud/index.php\",\"line\":36,\"function\":\"handleRequest\",\"class\":\"OC\",\"type\":\"::\",\"args\":[]}],\"File\":\"/snap/nextcloud/720/nextcloud/lib/public/AppFramework/Db/QBMapper.php\",\"Line\":292,\"CustomMessage\":\"--\"}","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0","version":"27.0.1.2"}

Aug 01 02:21:06 syncloud Nextcloud[28002]: {"reqId":"YqMYYGe2369QAFU01LpX","level":3,"time":"2023-08-01T02:21:06+00:00","remoteAddr":"192.168.1.1","user":"marxistvegan","app":"index","method":"GET","url":"/apps/dashboard/","message":"{\"Exception\":\"OCP\\\\AppFramework\\\\Db\\\\MultipleObjectsReturnedException\",\"Message\":\"Did not expect more than one result when executing: query \\\"SELECT * FROM `*PREFIX*user_status` WHERE `user_id` = :dcValue1\\\"; \",\"Code\":0,\"Trace\":[{\"file\":\"/snap/nextcloud/720/nextcloud/lib/public/AppFramework/Db/QBMapper.php\",\"line\":361,\"function\":\"findOneQuery\",\"class\":\"OCP\\\\AppFramework\\\\Db\\\\QBMapper\",\"type\":\"->\",\"args\":[[\"OC\\\\DB\\\\QueryBuilder\\\\QueryBuilder\"]]},{\"file\":\"/snap/nextcloud/720/nextcloud/apps/user_status/lib/Db/UserStatusMapper.php\",\"line\":111,\"function\":\"findEntity\",\"class\":\"OCP\\\\AppFramework\\\\Db\\\\QBMapper\",\"type\":\"->\",\"args\":[[\"OC\\\\DB\\\\QueryBuilder\\\\QueryBuilder\"]]},{\"file\":\"/snap/nextcloud/720/nextcloud/apps/user_status/lib/Service/StatusService.php\",\"line\":153,\"function\":\"findByUserId\",\"class\":\"OCA\\\\UserStatus\\\\Db\\\\UserStatusMapper\",\"type\":\"->\",\"args\":[\"marxistvegan\"]},{\"file\":\"/snap/nextcloud/720/nextcloud/apps/user_status/lib/Service/JSDataService.php\",\"line\":60,\"function\":\"findByUserId\",\"class\":\"OCA\\\\UserStatus\\\\Service\\\\StatusService\",\"type\":\"->\",\"args\":[\"marxistvegan\"]},{\"function\":\"jsonSerialize\",\"class\":\"OCA\\\\UserStatus\\\\Service\\\\JSDataService\",\"type\":\"->\",\"args\":[]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/InitialStateService.php\",\"line\":68,\"function\":\"json_encode\",\"args\":[[\"OCA\\\\UserStatus\\\\Service\\\\JSDataService\"],4194304]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/InitialStateService.php\",\"line\":92,\"function\":\"provideInitialState\",\"class\":\"OC\\\\InitialStateService\",\"type\":\"->\",\"args\":[\"user_status\",\"status\",[\"OCA\\\\UserStatus\\\\Service\\\\JSDataService\"]]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/InitialStateService.php\",\"line\":143,\"function\":\"invokeLazyStateCallbacks\",\"class\":\"OC\\\\InitialStateService\",\"type\":\"->\",\"args\":[]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/TemplateLayout.php\",\"line\":295,\"function\":\"getInitialStates\",\"class\":\"OC\\\\InitialStateService\",\"type\":\"->\",\"args\":[]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/legacy/OC_Template.php\",\"line\":182,\"function\":\"__construct\",\"class\":\"OC\\\\TemplateLayout\",\"type\":\"->\",\"args\":[\"user\",\"dashboard\"]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/public/AppFramework/Http/TemplateResponse.php\",\"line\":213,\"function\":\"fetchPage\",\"class\":\"OC_Template\",\"type\":\"->\",\"args\":[[\"#app-dashboard\",null]]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/AppFramework/Http/Dispatcher.php\",\"line\":182,\"function\":\"render\",\"class\":\"OCP\\\\AppFramework\\\\Http\\\\TemplateResponse\",\"type\":\"->\",\"args\":[]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/AppFramework/App.php\",\"line\":183,\"function\":\"dispatch\",\"class\":\"OC\\\\AppFramework\\\\Http\\\\Dispatcher\",\"type\":\"->\",\"args\":[[\"OCA\\\\Dashboard\\\\Controller\\\\DashboardController\"],\"index\"]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/private/Route/Router.php\",\"line\":315,\"function\":\"main\",\"class\":\"OC\\\\AppFramework\\\\App\",\"type\":\"::\",\"args\":[\"OCA\\\\Dashboard\\\\Controller\\\\DashboardController\",\"index\",[\"OC\\\\AppFramework\\\\DependencyInjection\\\\DIContainer\"],[\"dashboard.dashboard.index\"]]},{\"file\":\"/snap/nextcloud/720/nextcloud/lib/base.php\",\"line\":1071,\"function\":\"match\",\"class\":\"OC\\\\Route\\\\Router\",\"type\":\"->\",\"args\":[\"/apps/dashboard/\"]},{\"file\":\"/snap/nextcloud/720/nextcloud/index.php\",\"line\":36,\"function\":\"handleRequest\",\"class\":\"OC\",\"type\":\"::\",\"args\":[]}],\"File\":\"/snap/nextcloud/720/nextcloud/lib/public/AppFramework/Db/QBMapper.php\",\"Line\":292,\"CustomMessage\":\"--\"}","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0","version":"27.0.1.2"}

Now it is user_status.

Can you show apps you have?

snap run nextcloud.occ app:list

Also try to update all apps

snap run nextcloud.occ app:update --all

If that does not help try to disable user_status for now

snap run nextcloud.occ app:disable user_status

yep

root@syncloud:~/snap/nextcloud# snap run nextcloud.occ app:list
Enabled:
  - activity: 2.19.0
  - bruteforcesettings: 2.7.0
  - calendar: 4.4.3
  - cloud_federation_api: 1.10.0
  - comments: 1.17.0
  - contacts: 5.3.2
  - contactsinteraction: 1.8.0
  - dashboard: 7.7.0
  - dav: 1.27.0
  - deck: 1.10.0
  - federatedfilesharing: 1.17.0
  - federation: 1.17.0
  - files: 1.22.0
  - files_pdfviewer: 2.8.0
  - files_rightclick: 1.6.0
  - files_sharing: 1.19.0
  - files_trashbin: 1.17.0
  - files_versions: 1.20.0
  - firstrunwizard: 2.16.0
  - gpoddersync: 3.8.1
  - integration_google: 2.0.2
  - integration_mastodon: 2.0.2
  - integration_openai: 1.0.11
  - integration_twitter: 1.0.6
  - logreader: 2.12.0
  - lookup_server_connector: 1.15.0
  - mail: 3.2.5
  - memories: 5.2.1
  - news: 22.0.0
  - nextcloud_announcements: 1.16.0
  - notes: 4.8.1
  - oauth2: 1.15.1
  - password_policy: 1.17.0
  - photos: 2.3.0
  - previewgenerator: 5.3.0
  - privacy: 1.11.0
  - provisioning_api: 1.17.0
  - recognize: 4.3.0
  - recommendations: 1.6.0
  - related_resources: 1.2.0
  - richdocuments: 8.1.0
  - richdocumentscode: 23.5.104
  - serverinfo: 1.17.0
  - settings: 1.9.0
  - sharebymail: 1.17.0
  - spreed: 17.0.3
  - support: 1.10.0
  - survey_client: 1.15.0
  - systemtags: 1.17.0
  - tasks: 0.15.0
  - text: 3.8.0
  - theming: 2.2.0
  - twofactor_backupcodes: 1.16.0
  - user_ldap: 1.17.0
  - user_status: 1.7.0
  - viewer: 2.1.0
  - weather_status: 1.7.0
  - workflowengine: 2.9.0
Disabled:
  - admin_audit: 1.17.0
  - circles: 27.0.1 (installed 25.0.0)
  - encryption: 2.15.0
  - files_external: 1.19.0
  - notifications: 2.15.0 (installed 2.15.0)
  - suspicious_login: 5.0.0 (installed 4.4.0)
  - twofactor_totp: 9.0.0 (installed 9.0.0)

Disabling user_status did get me back into the web ui, so it is functional for the moment. What is the thought here on why it is giving an issue?

did you upgrade apps before disabling?
try enabling again (this helped with notifications somehow)

not clear what is happening, we do the following during the upgrade:

        self.occ.run('maintenance:mode --on')
        try:
            self.occ.run('upgrade')
            self.occ.run('app:update --all')
        except CalledProcessError as e:
            self.log.warn('unable to upgrade')
            self.log.warn(e.output.decode())

        self.occ.run('maintenance:mode --off')
        self.occ.run('db:add-missing-indices')
        self.occ.run('db:add-missing-columns')

probably something happened during the upgrade, then logs should show unable to upgrade

Probably I should not swallow errors during the upgrade these days as upgrades are properly transactional now and if I allow upgrade to fail it will automatically rollback to the last working version.