_decrypt_doc: <type 'exceptions.TypeError'>: must be string or buffer, not list
If there is an error while parsing the JSON message from the decrypted document (e.g. NODATA error), then we are returning an empty array back from the _process_decrypted_doc
function. But the consumer of this function is expecting a string or a buffer.
The link to this line of code in the 'master' branch is - https://0xacab.org/leap/bitmask-dev/blob/master/src/leap/bitmask/mail/incoming/service.py#L385
Our PR which handles 'ValueError' (in addition to the 'UnicodeError' that is already being handled) is - !87 (closed)
In the case of both these errors, the same return statement is returning an empty array and that is causing this issue.
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: 2017-03-20 18:38:45 [leap.bitmask.keymanager.openpgp] DEBUG [GNUPG:] NODATA 2
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: gpg: decrypt_message failed: eof
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: 2017-03-20 18:38:45 [leap.bitmask.keymanager.openpgp] WARN Failed to decrypt: Failed to encrypt/decrypt: [GNUPG:] NODATA 2
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: gpg: decrypt_message failed: eof
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: .
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: 2017-03-20 18:38:45 [leap.bitmask.mail.incoming.service] ERROR _decrypt_doc: Error decrypting document with ID aeadc6a4-fd54-4784-ab
eb-c591a40d014f
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: 2017-03-20 18:38:45 [leap.bitmask.mail.incoming.service] ERROR [Failure instance: Traceback: <class 'leap.bitmask.keymanager.errors.
DecryptError'>: Failed to encrypt/decrypt: [GNUPG:] NODATA 2
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: gpg: decrypt_message failed: eof
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: /usr/share/python/pixelated-user-agent/local/lib/python2.7/site-packages/twisted/internet/defer.py:1126:_inlineCallbacks
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: /usr/share/python/pixelated-user-agent/local/lib/python2.7/site-packages/twisted/python/failure.py:389:throwExceptionIntoGenerator
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: /usr/share/python/pixelated-user-agent/src/leap.bitmask/src/leap/bitmask/keymanager/__init__.py:591:decrypt_with_inactive_keys
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: /usr/share/python/pixelated-user-agent/local/lib/python2.7/site-packages/twisted/internet/defer.py:1274:unwindGenerator
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: --- <exception caught here> ---
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: /usr/share/python/pixelated-user-agent/local/lib/python2.7/site-packages/twisted/internet/defer.py:1128:_inlineCallbacks
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: /usr/share/python/pixelated-user-agent/src/leap.bitmask/src/leap/bitmask/keymanager/__init__.py:583:decrypt_with_inactive_keys
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: ]
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: 2017-03-20 18:38:45 [leap.bitmask.mail.incoming.service] INFO processing decrypted doc
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: 2017-03-20 18:38:45 [leap.bitmask.mail.incoming.service] ERROR Error while decrypting aeadc6a4-fd54-4784-abeb-c591a40d014f
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: 2017-03-20 18:38:45 [leap.bitmask.mail.incoming.service] ERROR No JSON object could be decoded
. Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: 2017-03-20 18:38:45 [leap.bitmask.mail.incoming.service] INFO adding message aeadc6a4-fd54-4784-abeb-c591a40d014f to local db
C Mar 20 18:38:45 pixelated pixelated-user-agent[26826]: 2017-03-20 18:38:45 [leap.bitmask.mail.incoming.service] ERROR [Failure instance: Traceback (failure with no frames): <class 'twisted.internet.defer.FirstError'>: FirstError[#1, [Failure instance: Traceback: <type 'exceptions.TypeError'>: must be string or buffer, not list