diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3e0ceed3d26dded250c88eee73130e084168e041..1f0bfbbf5a3b1b010a17fc46641c5a0f0dfc5f20 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,5 @@
 # v0.1.0.3
 
 * Fix: Broken link to help page for homomorphic encryption
-* Feature: Better localized links to MetaGer pages
\ No newline at end of file
+* Feature: Better localized links to MetaGer pages
+* Fix: Settings failed to save on Firefox for Android in some cases
\ No newline at end of file
diff --git a/build/js/app.js b/build/js/app.js
index e33072a513c63f1e0e5d752ec546f07ef8f53fbf..e0286571462e88b8d7401a920d32d5afc973b2d9 100644
--- a/build/js/app.js
+++ b/build/js/app.js
@@ -21,6 +21,9 @@ browser.runtime.onMessage.addListener((request, sender, sendResponse) => {
   if (request.type == "settings_set" && request.hasOwnProperty("settings")) {
     settingsManager.set(request.settings).then(() => {
       sendResponse({ status: "ok" });
+    }).catch(error => {
+      console.trace(error);
+      sendResponse({ status: "error" });
     });
     return true;
   }
@@ -28,10 +31,16 @@ browser.runtime.onMessage.addListener((request, sender, sendResponse) => {
     if (request.setting_key == "key") {
       tokenManager.store_key(null).then(() => {
         sendResponse({ status: "ok" });
+      }).catch(error => {
+        console.trace(error);
+        sendResponse({ status: "error" });
       });
     } else {
       settingsManager.remove(request.setting_key).then(() => {
         sendResponse({ status: "ok" });
+      }).catch(error => {
+        console.trace(error);
+        sendResponse({ status: "error" });
       });
     }
     return true;
@@ -40,7 +49,7 @@ browser.runtime.onMessage.addListener((request, sender, sendResponse) => {
     tokenManager.prepare_token_auth(request.cost).then(() => {
       sendResponse({ status: "ok" });
     }).catch(error => {
-      console.error(error);
+      console.trace(error);
       sendResponse({ status: "error" });
     });
     return true;