diff --git a/js/ui/components/automountManager.js b/js/ui/components/automountManager.js index 3e2dcd923..a64fc0d35 100644 --- a/js/ui/components/automountManager.js +++ b/js/ui/components/automountManager.js @@ -197,9 +197,13 @@ var AutomountManager = new Lang.Class({ this._closeOperation(volume); } catch (e) { // FIXME: we will always get G_IO_ERROR_FAILED from the gvfs udisks - // backend in this case, see - // https://bugs.freedesktop.org/show_bug.cgi?id=51271 - if (e.message.indexOf('No key available with this passphrase') != -1) { + // backend, see https://bugs.freedesktop.org/show_bug.cgi?id=51271 + // To reask the password if the user input was empty or wrong, we + // will check for corresponding error messages. However, these + // error strings are not unique for the cases in the comments below. + if (e.message.includes('No key available with this passphrase') || // cryptsetup + e.message.includes('No key available to unlock device') || // udisks (no password) + e.message.includes('Error unlocking')) { // udisks (wrong password) this._reaskPassword(volume); } else { if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED_HANDLED))