diff --git a/src/calibre/gui2/device.py b/src/calibre/gui2/device.py index cdbe31de65..cadb4f1e46 100644 --- a/src/calibre/gui2/device.py +++ b/src/calibre/gui2/device.py @@ -72,7 +72,14 @@ class DeviceJob(BaseJob): # {{{ if self._aborted: return self.failed = True - self._details = unicode(err) + '\n\n' + \ + try: + ex = unicode(err) + except: + try: + ex = str(err).decode(preferred_encoding, 'replace') + except: + ex = repr(err) + self._details = ex + '\n\n' + \ traceback.format_exc() self.exception = err finally: