diff --git a/toolkit/components/extensions/parent/ext-tabs-base.js b/toolkit/components/extensions/parent/ext-tabs-base.js
index 17321c22d36b3e44d32c1fe1cf35fbb94f8e4b91..c5f1dfb163fb64b29c2b0f70abe37d878cf8a625 100644
--- a/toolkit/components/extensions/parent/ext-tabs-base.js
+++ b/toolkit/components/extensions/parent/ext-tabs-base.js
@@ -1966,6 +1966,7 @@ class TabManagerBase {
    */
   addActiveTabPermission(nativeTab) {
     let tab = this.getWrapper(nativeTab);
+    if (!tab) return; // Empty tabs aren't tracked, nothing to add
     if (
       this.extension.hasPermission("activeTab") ||
       (this.extension.originControls &&
@@ -1987,7 +1988,9 @@ class TabManagerBase {
    *        The native tab for which to revoke permissions.
    */
   revokeActiveTabPermission(nativeTab) {
-    this.getWrapper(nativeTab).activeTabWindowID = null;
+    let wrapper = this.getWrapper(nativeTab);
+    if (!wrapper) return; // Empty tabs arent tracked, nothing to revoke
+    wrapper.activeTabWindowID = null;
   }
 
   /**
@@ -2000,7 +2003,9 @@ class TabManagerBase {
    *        True if the extension has activeTab permissions for this tab.
    */
   hasActiveTabPermission(nativeTab) {
-    return this.getWrapper(nativeTab).hasActiveTabPermission;
+    let wrapper = this.getWrapper(nativeTab);
+    if (!wrapper) return false; // Empty tabs arent tracked, nothing to check
+    return wrapper.hasActiveTabPermission;
   }
 
   /**
@@ -2011,6 +2016,7 @@ class TabManagerBase {
    */
   activateScripts(nativeTab) {
     let tab = this.getWrapper(nativeTab);
+    if (!tab) return; // Empty tabs aren't tracked, nothing to activate
     if (
       this.extension.originControls &&
       !tab.matchesHostPermission &&
@@ -2043,7 +2049,9 @@ class TabManagerBase {
    *        True if the extension has permissions for this tab.
    */
   hasTabPermission(nativeTab) {
-    return this.getWrapper(nativeTab).hasTabPermission;
+    let wrapper = this.getWrapper(nativeTab);
+    if (!wrapper) return false; // Empty tabs arent tracked, nothing to check
+    return wrapper.hasTabPermission;
   }
 
   /**
@@ -2090,7 +2098,9 @@ class TabManagerBase {
    * @returns {object}
    */
   convert(nativeTab, fallbackTabSize = null) {
-    return this.getWrapper(nativeTab).convert(fallbackTabSize);
+    let wrapper = this.getWrapper(nativeTab);
+    if (!wrapper) return null; // Empty tabs aren't tracked, can't convert
+    return wrapper.convert(fallbackTabSize);
   }
 
   /**
