diff --git a/package.json b/package.json
index 3bc6959f6..50bb9968c 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "trilium",
   "productName": "Trilium Notes",
   "description": "Trilium Notes",
-  "version": "0.45.7",
+  "version": "0.45.8",
   "license": "AGPL-3.0-only",
   "main": "electron.js",
   "bin": {
diff --git a/src/services/build.js b/src/services/build.js
index 18f8a65b8..37e1951e4 100644
--- a/src/services/build.js
+++ b/src/services/build.js
@@ -1 +1 @@
-module.exports = { buildDate:"2020-12-22T20:21:15+01:00", buildRevision: "bdfd760b9d428dc29c45a0e016d12a25af220043" };
+module.exports = { buildDate:"2021-01-11T22:29:31+01:00", buildRevision: "369274ead75947a68bf7bbb5ab1e784e81521030" };
diff --git a/src/services/export/zip.js b/src/services/export/zip.js
index 58d234c66..bc44ba7b0 100644
--- a/src/services/export/zip.js
+++ b/src/services/export/zip.js
@@ -234,7 +234,7 @@ function exportToZip(taskContext, branch, format, res) {
     
     
 
-
+
   ${utils.escapeHtml(title)}
 ${content}
 
diff --git a/src/services/options_init.js b/src/services/options_init.js
index 66fac2477..dd55dcf17 100644
--- a/src/services/options_init.js
+++ b/src/services/options_init.js
@@ -31,10 +31,7 @@ function initNotSyncedOptions(initialized, startNotePath = 'root', opts = {}) {
     optionService.createOption('openTabs', JSON.stringify([
         {
             notePath: startNotePath,
-            active: true,
-            sidebar: {
-                widgets: []
-            }
+            active: true
         }
     ]), false);
 
@@ -102,6 +99,15 @@ function initStartupOptions() {
             log.info(`Created missing option "${name}" with default value "${value}"`);
         }
     }
+
+    if (process.env.TRILIUM_START_NOTE_ID) {
+        optionService.setOption('openTabs', JSON.stringify([
+            {
+                notePath: process.env.TRILIUM_START_NOTE_ID,
+                active: true
+            }
+        ]));
+    }
 }
 
 function getKeyboardDefaultOptions() {
diff --git a/src/services/search/expressions/note_content_protected_fulltext.js b/src/services/search/expressions/note_content_protected_fulltext.js
index daed14000..0ed21eb15 100644
--- a/src/services/search/expressions/note_content_protected_fulltext.js
+++ b/src/services/search/expressions/note_content_protected_fulltext.js
@@ -32,11 +32,15 @@ class NoteContentProtectedFulltextExp extends Expression {
                 FROM notes JOIN note_contents USING (noteId) 
                 WHERE type IN ('text', 'code') AND isDeleted = 0 AND isProtected = 1`)) {
 
+            if (!inputNoteSet.hasNoteId(noteId) || !(noteId in noteCache.notes)) {
+                continue;
+            }
+
             try {
                 content = protectedSessionService.decryptString(content);
             }
             catch (e) {
-                log.info('Cannot decrypt content of note', noteId);
+                log.info(`Cannot decrypt content of note ${noteId}`);
                 continue;
             }
 
@@ -50,11 +54,7 @@ class NoteContentProtectedFulltextExp extends Expression {
                 content = content.replace(/ /g, ' ');
             }
 
-            if (this.tokens.find(token => !content.includes(token))) {
-                continue;
-            }
-
-            if (inputNoteSet.hasNoteId(noteId) && noteId in noteCache.notes) {
+            if (!this.tokens.find(token => !content.includes(token))) {
                 resultNoteSet.add(noteCache.notes[noteId]);
             }
         }
diff --git a/src/services/search/expressions/note_content_unprotected_fulltext.js b/src/services/search/expressions/note_content_unprotected_fulltext.js
index ad0ce7cdf..a9a531269 100644
--- a/src/services/search/expressions/note_content_unprotected_fulltext.js
+++ b/src/services/search/expressions/note_content_unprotected_fulltext.js
@@ -26,6 +26,10 @@ class NoteContentUnprotectedFulltextExp extends Expression {
                 FROM notes JOIN note_contents USING (noteId) 
                 WHERE type IN ('text', 'code') AND isDeleted = 0 AND isProtected = 0`)) {
 
+            if (!inputNoteSet.hasNoteId(noteId) || !(noteId in noteCache.notes)) {
+                continue;
+            }
+
             content = content.toString().toLowerCase();
 
             if (type === 'text' && mime === 'text/html') {
@@ -36,11 +40,7 @@ class NoteContentUnprotectedFulltextExp extends Expression {
                 content = content.replace(/ /g, ' ');
             }
 
-            if (this.tokens.find(token => !content.includes(token))) {
-                continue;
-            }
-
-            if (inputNoteSet.hasNoteId(noteId) && noteId in noteCache.notes) {
+            if (!this.tokens.find(token => !content.includes(token))) {
                 resultNoteSet.add(noteCache.notes[noteId]);
             }
         }