diff --git a/web/app.js b/web/app.js
index d07853f6c..91384891b 100644
--- a/web/app.js
+++ b/web/app.js
@@ -305,12 +305,9 @@ const PDFViewerApplication = {
       return;
     }
     try {
-      const prefs = await this.preferences.getAll();
-      for (const name in prefs) {
-        AppOptions.set(name, prefs[name]);
-      }
+      AppOptions.setAll(await this.preferences.getAll());
     } catch (reason) {
-      console.error(`_readPreferences: "${reason.message}".`);
+      console.error(`_readPreferences: "${reason?.message}".`);
     }
   },
 
@@ -385,6 +382,9 @@ const PDFViewerApplication = {
       AppOptions.set("locale", hashParams.locale);
     }
 
+    if (waitOn.length === 0) {
+      return undefined;
+    }
     return Promise.all(waitOn).catch(reason => {
       console.error(`_parseHashParameters: "${reason.message}".`);
     });
diff --git a/web/app_options.js b/web/app_options.js
index e4931997b..8a83bd42e 100644
--- a/web/app_options.js
+++ b/web/app_options.js
@@ -314,6 +314,12 @@ class AppOptions {
     userOptions[name] = value;
   }
 
+  static setAll(options) {
+    for (const name in options) {
+      userOptions[name] = options[name];
+    }
+  }
+
   static remove(name) {
     delete userOptions[name];
   }