diff --git a/lib/Serverless.js b/lib/Serverless.js
index <HASH>..<HASH> 100644
--- a/lib/Serverless.js
+++ b/lib/Serverless.js
@@ -185,8 +185,11 @@ class Serverless {
       _isInvokedByGlobalInstallation: true,
     });
     serverlessLocal.isLocallyInstalled = true;
-    // TODO: Remove below assignment with next major
-    serverlessLocal.isInvokedByGlobalInstallation = true;
+    if (!serverlessLocal._isInvokedByGlobalInstallation) {
+      // if we fallback to older version it may recognize "isInvokedByGlobalInstallation" instead
+      // of "_isInvokedByGlobalInstallation". Ensure to set it, in such case
+      serverlessLocal.isInvokedByGlobalInstallation = true;
+    }
     this.invokedInstance = serverlessLocal;
     await serverlessLocal.init();
   }
@@ -271,6 +274,16 @@ class Serverless {
   logDeprecation(code, message) {
     return this._logDeprecation(`EXT_${ensureString(code)}`, ensureString(message));
   }
+
+  // If this instance is initialized by older version of the Framework,
+  // it may set "isInvokedByGlobalInstallation" directly.
+  // This fallback ensures it ends at "_isInvokedByGlobalInstallation"
+  set isInvokedByGlobalInstallation(value) {
+    this._isInvokedByGlobalInstallation = value;
+  }
+  get isInvokedByGlobalInstallation() {
+    return this._isInvokedByGlobalInstallation;
+  }
 }
 
 module.exports = Serverless;
refactor: Patch handling of `isInvokedByGlobalInstallation` flag