From fa530bfd4c99a47a57c294685480c75b6dc68b53 Mon Sep 17 00:00:00 2001
From: patrick-motsch
Date: Fri, 13 Feb 2026 13:12:21 +0100
Subject: [PATCH] fixed route to media center
---
.../features/teamsbot/routeFeatureTeamsbot.py | 47 ++++++++++---------
1 file changed, 26 insertions(+), 21 deletions(-)
diff --git a/modules/features/teamsbot/routeFeatureTeamsbot.py b/modules/features/teamsbot/routeFeatureTeamsbot.py
index 4c6a7877..84f601fc 100644
--- a/modules/features/teamsbot/routeFeatureTeamsbot.py
+++ b/modules/features/teamsbot/routeFeatureTeamsbot.py
@@ -362,26 +362,31 @@ async def bridgeStatusCallback(
logger.info(f"Bridge status callback: session={sessionId}, status={status}")
- # Update session status
- from modules.datamodels.datamodelUam import User
- systemUser = User(id="system", email="system@internal")
- interface = interfaceDb.getInterface(systemUser, featureInstanceId=instanceId)
-
- updates = {"status": status}
- if errorMessage:
- updates["errorMessage"] = errorMessage
- if status == TeamsbotSessionStatus.ACTIVE.value:
- from modules.shared.timeUtils import getUtcTimestamp
- updates["startedAt"] = getUtcTimestamp()
- elif status in [TeamsbotSessionStatus.ENDED.value, TeamsbotSessionStatus.ERROR.value]:
- from modules.shared.timeUtils import getUtcTimestamp
- updates["endedAt"] = getUtcTimestamp()
-
- interface.updateSession(sessionId, updates)
-
- # Emit SSE event
- from .service import _emitSessionEvent
- await _emitSessionEvent(sessionId, "statusChange", {"status": status, "errorMessage": errorMessage})
+ try:
+ # Update session status (bridge callbacks have no user context)
+ from modules.datamodels.datamodelUam import User
+ systemUser = User(id="system", username="system", email="system@internal")
+ interface = interfaceDb.getInterface(systemUser, featureInstanceId=instanceId)
+
+ updates = {"status": status}
+ if errorMessage:
+ updates["errorMessage"] = errorMessage
+ if status == TeamsbotSessionStatus.ACTIVE.value:
+ from modules.shared.timeUtils import getUtcTimestamp
+ updates["startedAt"] = getUtcTimestamp()
+ elif status in [TeamsbotSessionStatus.ENDED.value, TeamsbotSessionStatus.ERROR.value]:
+ from modules.shared.timeUtils import getUtcTimestamp
+ updates["endedAt"] = getUtcTimestamp()
+
+ interface.updateSession(sessionId, updates)
+
+ # Emit SSE event
+ from .service import _emitSessionEvent
+ await _emitSessionEvent(sessionId, "statusChange", {"status": status, "errorMessage": errorMessage})
+
+ except Exception as e:
+ logger.error(f"Bridge status callback processing failed: session={sessionId}, error={e}")
+ # Still return 200 so the bridge doesn't retry endlessly
return {"received": True}
@@ -405,7 +410,7 @@ async def bridgeAudioWebsocket(
config = _getInstanceConfig(instanceId)
from modules.datamodels.datamodelUam import User
- systemUser = User(id="system", email="system@internal")
+ systemUser = User(id="system", username="system", email="system@internal")
service = TeamsbotService(systemUser, None, instanceId, config)
try: