fix(startup): capture exception message before deferred telemetry lambda

main
dsarno 2025-09-10 12:58:09 -07:00
parent 33979d348b
commit 283597dc24
1 changed files with 4 additions and 2 deletions

View File

@ -114,11 +114,12 @@ async def server_lifespan(server: FastMCP) -> AsyncIterator[Dict[str, Any]]:
# Record connection failure (deferred) # Record connection failure (deferred)
import threading as _t import threading as _t
_err_msg = str(e)[:200]
_t.Timer(1.0, lambda: record_telemetry( _t.Timer(1.0, lambda: record_telemetry(
RecordType.UNITY_CONNECTION, RecordType.UNITY_CONNECTION,
{ {
"status": "failed", "status": "failed",
"error": str(e)[:200], "error": _err_msg,
"connection_time_ms": (time.perf_counter() - start_clk) * 1000, "connection_time_ms": (time.perf_counter() - start_clk) * 1000,
} }
)).start() )).start()
@ -126,11 +127,12 @@ async def server_lifespan(server: FastMCP) -> AsyncIterator[Dict[str, Any]]:
logger.warning("Unexpected error connecting to Unity on startup: %s", e) logger.warning("Unexpected error connecting to Unity on startup: %s", e)
_unity_connection = None _unity_connection = None
import threading as _t import threading as _t
_err_msg = str(e)[:200]
_t.Timer(1.0, lambda: record_telemetry( _t.Timer(1.0, lambda: record_telemetry(
RecordType.UNITY_CONNECTION, RecordType.UNITY_CONNECTION,
{ {
"status": "failed", "status": "failed",
"error": str(e)[:200], "error": _err_msg,
"connection_time_ms": (time.perf_counter() - start_clk) * 1000, "connection_time_ms": (time.perf_counter() - start_clk) * 1000,
} }
)).start() )).start()