From 8ff58e6efcd239523c308e1604b184ba6f01bd32 Mon Sep 17 00:00:00 2001 From: Owen Date: Fri, 16 Jan 2026 14:59:13 -0800 Subject: [PATCH] Set the error on terminate as well --- olm/connect.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/olm/connect.go b/olm/connect.go index ebe7009..394e7e2 100644 --- a/olm/connect.go +++ b/olm/connect.go @@ -241,10 +241,25 @@ func (o *Olm) handleOlmError(msg websocket.WSMessage) { func (o *Olm) handleTerminate(msg websocket.WSMessage) { logger.Info("Received terminate message") + + var errorData OlmErrorData + + jsonData, err := json.Marshal(msg.Data) + if err != nil { + logger.Error("Error marshaling terminate error data: %v", err) + } else { + if err := json.Unmarshal(jsonData, &errorData); err != nil { + logger.Error("Error unmarshaling terminate error data: %v", err) + } else { + logger.Info("Terminate reason (code: %s): %s", errorData.Code, errorData.Message) + // Set the olm error in the API server so it can be exposed via status + o.apiServer.SetOlmError(errorData.Code, errorData.Message) + } + } + o.apiServer.SetTerminated(true) o.apiServer.SetConnectionStatus(false) o.apiServer.SetRegistered(false) - o.apiServer.ClearOlmError() o.apiServer.ClearPeerStatuses() network.ClearNetworkSettings()