diff --git a/web/pgadmin/browser/static/js/heartbeat.js b/web/pgadmin/browser/static/js/heartbeat.js index 65f91e29e..cdc7b2b23 100644 --- a/web/pgadmin/browser/static/js/heartbeat.js +++ b/web/pgadmin/browser/static/js/heartbeat.js @@ -28,7 +28,7 @@ export function send_heartbeat(_server_id, _item) { .catch((error) => { if (error && error.message == 'Network Error') { pgAdmin.Browser.notifier.error(gettext(`pgAdmin server not responding, try to login again: ${error.message || error.response.data.errormsg}`)); - } else { + } else if (!error.response?.data?.data?.includes('Manager not found')) { pgAdmin.Browser.notifier.error(gettext(`Server heartbeat logging error: ${error.message || error.response.data.errormsg}`)); } stop_heartbeat(_item); diff --git a/web/pgadmin/utils/heartbeat.py b/web/pgadmin/utils/heartbeat.py index 75247e422..7f73b9f81 100644 --- a/web/pgadmin/utils/heartbeat.py +++ b/web/pgadmin/utils/heartbeat.py @@ -25,22 +25,28 @@ def log_server_heartbeat(data): ) _server_heartbeat = getattr(current_app, '_pgadmin_server_heartbeat', {}) + session_id = session.sid - if session.sid not in _server_heartbeat: - _server_heartbeat[session.sid] = {} + if session_id not in _server_heartbeat: + _server_heartbeat[session_id] = {} if not manager: stop_server_heartbeat(data) - return False, gettext("Manager not found. Stopped Heartbeat logging.") + msg = gettext("Manager not found. Stopped Heartbeat logging.") + current_app.logger.error( + f"Manager not found. Stopped Heartbeat logging for the " + f"session id: {session_id} and server id: {data['sid']}" + ) + return False, msg else: - _server_heartbeat[session.sid][data['sid']] = { + _server_heartbeat[session_id][data['sid']] = { 'timestamp': datetime.datetime.now(), 'conn': manager.connections } current_app.logger.debug( - "Heartbeat logged for the session id##server id: {0}##{1}".format( - session.sid, data['sid'])) - + f"Heartbeat logged for the session id: {session_id} and " + f"server id: {data['sid']}" + ) setattr(current_app, '_pgadmin_server_heartbeat', _server_heartbeat) return True, gettext("Heartbeat logged successfully.")