diff options
author | Marius David Wieschollek <passwords.public@mdns.eu> | 2022-01-04 23:00:22 +0300 |
---|---|---|
committer | Marius David Wieschollek <passwords.public@mdns.eu> | 2022-01-04 23:00:22 +0300 |
commit | 0ace87d6d4c7eedb9ce9913c28c13c5ba6d6deeb (patch) | |
tree | 41fbea4ca5e5720c19910114a3cbf246c73882ba /src/js/Manager | |
parent | cb8a5d8e999969ba842c13a1212c7b54d7dea578 (diff) |
Added handling of precondition failed error
Signed-off-by: Marius David Wieschollek <passwords.public@mdns.eu>
Diffstat (limited to 'src/js/Manager')
-rw-r--r-- | src/js/Manager/SearchManager.js | 2 | ||||
-rw-r--r-- | src/js/Manager/ServerManager.js | 10 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/js/Manager/SearchManager.js b/src/js/Manager/SearchManager.js index 2df7290..f2dba25 100644 --- a/src/js/Manager/SearchManager.js +++ b/src/js/Manager/SearchManager.js @@ -79,7 +79,7 @@ class SearchManager { ); await this._loadHiddenPasswords(api); } catch(e) { - if(e.name === 'EncryptionNotEnabledError' || e.name === 'MissingEncryptionKeyError') { + if(e.name === 'EncryptionNotEnabledError' || e.name === 'MissingEncryptionKeyError' || e.name === 'PreconditionFailedError') { try { await ServerManager.restartSession(api.getServer()); } catch(e2) { diff --git a/src/js/Manager/ServerManager.js b/src/js/Manager/ServerManager.js index 07acb5f..50d46c6 100644 --- a/src/js/Manager/ServerManager.js +++ b/src/js/Manager/ServerManager.js @@ -9,6 +9,7 @@ import StorageService from '@js/Services/StorageService'; import SettingsService from '@js/Services/SettingsService'; import SessionAuthorizationHelper from '@js/Helper/SessionAuthorizationHelper'; import ServerRequirementCheck from '@js/Helper/ServerRequirementCheck'; +import {PreconditionFailedError} from 'passwords-client/errors'; class ServerManager { @@ -246,7 +247,14 @@ class ServerManager { .getRequest() .setPath('1.0/session/keepalive') .send() - .catch(ErrorManager.catch); + .catch( + (e) => { + ErrorManager.logError(e); + if(e.type === 'PreconditionFailedError') { + this.restartSession(api.getServer()) + .catch(ErrorManager.catch); + } + }); } /** |