[V7] Email Errorafter upgrade error occured

After upgrade to v7. When I save existing record in email account. I got this error.

  File "/home/frappe/frappe-bench/apps/frappe/frappe/email/doctype/email_account/email_account.py", line 61, in validate
    self.check_smtp()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/email/doctype/email_account/email_account.py", line 99, in check_smtp
    password = self.get_password(),
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/base_document.py", line 597, in get_password
    return get_decrypted_password(self.doctype, self.name, fieldname, raise_exception=raise_exception)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/password.py", line 16, in get_decrypted_password
    return decrypt(auth[0][0])
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/password.py", line 101, in decrypt
    plain_text = cstr(cipher_suite.decrypt(encode(pwd)))
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/cryptography/fernet.py", line 103, in decrypt
    raise InvalidToken
InvalidToken

Any idea how to resolve this issue?

Pushed fix on develop. Can you check?

@rmehta still got the error :frowning:

This is the full error

Traceback (most recent call last):
  File "/home/frappe/frappe-bench/apps/frappe/frappe/desk/form/save.py", line 22, in savedocs
    doc.save()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 242, in save
    self._save(*args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 269, in _save
    self.run_before_save_methods()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 687, in run_before_save_methods
    self.run_method("validate")
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 638, in run_method
    return Document.hook(fn)(self, *args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 816, in composer
    return composed(self, method, *args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 799, in runner
    add_to_return_value(self, fn(self, *args, **kwargs))
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 632, in 
    fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/email/doctype/email_account/email_account.py", line 61, in validate
    self.check_smtp()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/email/doctype/email_account/email_account.py", line 101, in check_smtp
    password = self.get_password(),
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/base_document.py", line 597, in get_password
    return get_decrypted_password(self.doctype, self.name, fieldname, raise_exception=raise_exception)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/password.py", line 16, in get_decrypted_password
    return decrypt(auth[0][0])
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/password.py", line 101, in decrypt
    plain_text = cstr(cipher_suite.decrypt(encode(pwd)))
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/cryptography/fernet.py", line 103, in decrypt
    raise InvalidToken
InvalidToken

Traceback (most recent call last):
  File "/home/frappe/frappe-bench/apps/frappe/frappe/app.py", line 55, in application
    response = frappe.handler.handle()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 19, in handle
    execute_cmd(cmd)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 36, in execute_cmd
    ret = frappe.call(method, **frappe.form_dict)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 876, in call
    return fn(*args, **newargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/desk/form/save.py", line 22, in savedocs
    doc.save()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 242, in save
    self._save(*args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 269, in _save
    self.run_before_save_methods()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 687, in run_before_save_methods
    self.run_method("validate")
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 638, in run_method
    return Document.hook(fn)(self, *args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 816, in composer
    return composed(self, method, *args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 799, in runner
    add_to_return_value(self, fn(self, *args, **kwargs))
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 632, in 
    fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/email/doctype/email_account/email_account.py", line 61, in validate
    self.check_smtp()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/email/doctype/email_account/email_account.py", line 101, in check_smtp
    password = self.get_password(),
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/base_document.py", line 597, in get_password
    return get_decrypted_password(self.doctype, self.name, fieldname, raise_exception=raise_exception)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/password.py", line 16, in get_decrypted_password
    return decrypt(auth[0][0])
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/password.py", line 101, in decrypt
    plain_text = cstr(cipher_suite.decrypt(encode(pwd)))
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/cryptography/fernet.py", line 103, in decrypt
    raise InvalidToken
InvalidToken

@rmehta I solve this problem by deleting the old record and creating a new one :slight_smile: I have notice password field now is encrypted in the database so maybe that is the issue :smiley: just a hunch

1 Like