diff --git a/web/pgadmin/tools/debugger/static/js/direct.js b/web/pgadmin/tools/debugger/static/js/direct.js
index fab16604..123b9cf1 100644
--- a/web/pgadmin/tools/debugger/static/js/direct.js
+++ b/web/pgadmin/tools/debugger/static/js/direct.js
@@ -1541,8 +1541,6 @@ define([
         });
       this.panels = [];
 
-      pgBrowser.bind_beforeunload();
-
       // Below code will be executed for indirect debugging
       // indirect debugging - 0  and for direct debugging - 1
       if (trans_id != undefined && !debug_type) {
@@ -1853,6 +1851,7 @@ define([
                * instead, a poller is set up who will check
                */
               if(self.preferences.debugger_new_browser_tab) {
+                pgBrowser.bind_beforeunload();
                 let pollIntervalId = setInterval(()=>{
                   if(window.opener && window.opener.pgAdmin) {
                     self.reflectPreferences();
diff --git a/web/pgadmin/tools/debugger/utils/debugger_instance.py b/web/pgadmin/tools/debugger/utils/debugger_instance.py
index 82d79f6e..66393801 100644
--- a/web/pgadmin/tools/debugger/utils/debugger_instance.py
+++ b/web/pgadmin/tools/debugger/utils/debugger_instance.py
@@ -14,12 +14,12 @@ import random
 debugger_sessions_lock = Lock()
 
 
-class DebuggerInstance:
+class DebuggerInstance(object):
     def __init__(self, trans_id=None):
         if trans_id is None:
             self._trans_id = str(random.randint(1, 9999999))
         else:
-            self._trans_id = trans_id
+            self._trans_id = str(trans_id)
 
         self._function_data = None
         self._debugger_data = None
