diff --git a/src/common/extUtils.js b/src/common/extUtils.js
index 39cf196..591d810 100644
--- a/src/common/extUtils.js
+++ b/src/common/extUtils.js
@@ -14,6 +14,13 @@
   return manifest?.version;
 }
 
+// Returns a semver-compatible extension version
+export function getSemVerExtVersion() {
+  const version = getExtVersion();
+  if (!(typeof version === 'string')) return null;
+  return version.match(/^[^.]*(?:\.[^.]*){0,2}/)?.[0] ?? null;
+}
+
 // Get a URL to a document which is part of the extension documentation (using
 // |ref| as the Git ref).
 export function getDocURLWithRef(doc, ref) {
diff --git a/src/killSwitch/index.js b/src/killSwitch/index.js
index a1083b1..6be6589 100644
--- a/src/killSwitch/index.js
+++ b/src/killSwitch/index.js
@@ -1,7 +1,7 @@
 import {compareLoose} from 'semver';
 
 import actionApi from '../common/actionApi.js';
-import {getExtVersion} from '../common/extUtils.js';
+import {getSemVerExtVersion} from '../common/extUtils.js';
 
 import * as commonPb from './api_proto/common_pb.js';
 import {KillSwitchServicePromiseClient} from './api_proto/kill_switch_grpc_web_pb.js';
@@ -51,8 +51,10 @@
     this.client.getKillSwitchOverview(request)
         .then(res => {
           let killSwitches = res.getKillSwitchesList();
-          let currentVersion = getExtVersion();
-          if (currentVersion === '0') currentVersion = '0.0.0';
+          let currentVersion = getSemVerExtVersion();
+          if (currentVersion === '0' || currentVersion === null) {
+            currentVersion = '0.0.0';
+          }
 
           let forceDisabledFeaturesSet = new Set();
           for (let killSwitch of killSwitches) {
