diff --git a/js/background.js b/js/background.js
index 9fc52fb57..0627797dc 100644
--- a/js/background.js
+++ b/js/background.js
@@ -819,6 +819,7 @@
     console.log('background onError:', Errors.toLogFormat(error));
 
     if (
+      error &&
       error.name === 'HTTPError' &&
       (error.code === 401 || error.code === 403)
     ) {
@@ -847,7 +848,7 @@
       return;
     }
 
-    if (error.name === 'HTTPError' && error.code === -1) {
+    if (error && error.name === 'HTTPError' && error.code === -1) {
       // Failed to connect to server
       if (navigator.onLine) {
         console.log('retrying in 1 minute');
@@ -859,7 +860,7 @@
     }
 
     if (ev.proto) {
-      if (error.name === 'MessageCounterError') {
+      if (error && error.name === 'MessageCounterError') {
         if (ev.confirm) {
           ev.confirm();
         }
@@ -870,7 +871,7 @@
       const envelope = ev.proto;
       const message = initIncomingMessage(envelope);
 
-      await message.saveErrors(error);
+      await message.saveErrors(error || new Error('Error was null'));
       const id = message.get('conversationId');
       const conversation = await ConversationController.getOrCreateAndWait(
         id,
diff --git a/libtextsecure/message_receiver.js b/libtextsecure/message_receiver.js
index 0d63a78b8..f56ca963d 100644
--- a/libtextsecure/message_receiver.js
+++ b/libtextsecure/message_receiver.js
@@ -503,7 +503,7 @@ MessageReceiver.prototype.extend({
       .catch(error => {
         let errorToThrow = error;
 
-        if (error.message === 'Unknown identity key') {
+        if (error && error.message === 'Unknown identity key') {
           // create an error that the UI will pick up and ask the
           // user if they want to re-negotiate
           const buffer = dcodeIO.ByteBuffer.wrap(ciphertext);