Through a series of unfortunate events, I had to rebuild my Nextcloud install from scratch. Unfortunately I lost my entire application directory in /var/www/localhost/htdocs, including my config.php. I have a good, full backup of the entire Nextcloud database using xtrabackup, so I reinstalled Nextcloud 17.0.0, did it’s setup to the point where I could log into the only admin user, then shut down apache/mysql and replaced the entire Nextcloud database with my backup. After starting mysql and apache back up I could access Nextcloud using my old user. Horray!
All of my other apps appear to work fine except my passwords app. Clicking on the passwords app in my Nextcloud bar loads the left pane, but the main right pane is just a spinning loading icon forever. The Nextcloud logs show two entries for every time I try to load the page:
[passwords] Error: Error "HMAC does not match." in OCA\Passwords\Controller\Api\FolderApiController::show
POST /nextcloud/index.php/apps/passwords/api/1.0/folder/show
from <ip_addr> by <user> at 2020-02-02T17:21:13+00:00
and
[passwords] Error: Exception: HMAC does not match. at <<closure>>
0. /var/www/localhost/htdocs/nextcloud/apps/passwords/lib/Encryption/Object/SseV1Encryption.php line 158
OC\Security\Crypto->decrypt("*** sensitive parameters replaced ***")
1. /var/www/localhost/htdocs/nextcloud/apps/passwords/lib/Services/EncryptionService.php line 113
OCA\Passwords\Encryption\Object\SseV1Encryption->decryptObject("*** sensitive parameters replaced ***")
2. /var/www/localhost/htdocs/nextcloud/apps/passwords/lib/Helper/ApiObjects/AbstractObjectHelper.php line 142
OCA\Passwords\Services\EncryptionService->decrypt("*** sensitive parameters replaced ***")
3. /var/www/localhost/htdocs/nextcloud/apps/passwords/lib/Helper/ApiObjects/PasswordObjectHelper.php line 111
OCA\Passwords\Helper\ApiObjects\AbstractObjectHelper->getRevision(OCA\Passwords\Db\Password {id: 354}, {hidden: "*** se ... "}, true)
4. /var/www/localhost/htdocs/nextcloud/apps/passwords/lib/Helper/ApiObjects/FolderObjectHelper.php line 265
OCA\Passwords\Helper\ApiObjects\PasswordObjectHelper->getApiObject(OCA\Passwords\Db\Password {id: 354}, "model", {hidden: "*** se ... "})
5. /var/www/localhost/htdocs/nextcloud/apps/passwords/lib/Helper/ApiObjects/FolderObjectHelper.php line 115
OCA\Passwords\Helper\ApiObjects\FolderObjectHelper->getPasswords("*** sensitive parameters replaced ***")
6. /var/www/localhost/htdocs/nextcloud/apps/passwords/lib/Controller/Api/AbstractObjectApiController.php line 142
OCA\Passwords\Helper\ApiObjects\FolderObjectHelper->getApiObject(OCA\Passwords\Db\Folder {id: 11}, "model+folders+passwords+parent")
7. /var/www/localhost/htdocs/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 170
OCA\Passwords\Controller\Api\AbstractObjectApiController->show("057ea52d-d8d1-4012-9bb1-a79773605cd1", "model+folders+passwords+parent")
8. /var/www/localhost/htdocs/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 99
OC\AppFramework\Http\Dispatcher->executeController(OCA\Passwords\Co ... {}, "show")
9. /var/www/localhost/htdocs/nextcloud/lib/private/AppFramework/App.php line 126
OC\AppFramework\Http\Dispatcher->dispatch(OCA\Passwords\Co ... {}, "show")
10. /var/www/localhost/htdocs/nextcloud/lib/private/AppFramework/Routing/RouteActionHandler.php line 47
OC\AppFramework\App::main("FolderApiController", "show", OC\AppFramework\ ... {}, {_route: "passwords.folder_api.show"})
11. <<closure>>
OC\AppFramework\Routing\RouteActionHandler->__invoke({_route: "passwords.folder_api.show"})
12. /var/www/localhost/htdocs/nextcloud/lib/private/Route/Router.php line 297
undefinedundefinedcall_user_func(OC\AppFramework\ ... {}, {_route: "passwords.folder_api.show"})
13. /var/www/localhost/htdocs/nextcloud/lib/base.php line 997
OC\Route\Router->match("/apps/passwords/api/1.0/folder/show")
14. /var/www/localhost/htdocs/nextcloud/index.php line 42
OC::handleRequest()
POST /nextcloud/index.php/apps/passwords/api/1.0/folder/show
from <ip_addr> by <user> at 2020-02-02T17:21:13+00:00
Is there a way to get my passwords back? I’m really not looking forward to the literally hundreds of password resets I’m going to have to do if I can’t.