From 8002eec249e44926c4cae8fcff3aa16fa0056345 Mon Sep 17 00:00:00 2001 From: Kathryn Baldauf Date: Mon, 21 Jul 2025 15:04:28 -0700 Subject: [PATCH] Add cause string to error message sent with xpc (#361) Looks like we've been ignoring the "cause" field for ContainerizationError when sent over xpc. Add the cause to the `ContainerXPCError` message field instead of a new `cause` field since `Error` is not encodable. The goal here is just to preserve information. Signed-off-by: Kathryn Baldauf --- Sources/ContainerXPC/XPCMessage.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Sources/ContainerXPC/XPCMessage.swift b/Sources/ContainerXPC/XPCMessage.swift index eb1f6737..3b8ee759 100644 --- a/Sources/ContainerXPC/XPCMessage.swift +++ b/Sources/ContainerXPC/XPCMessage.swift @@ -86,7 +86,11 @@ extension XPCMessage { } public func set(error: ContainerizationError) { - let serializableError = ContainerXPCError(code: error.code.description, message: error.message) + var message = error.message + if let cause = error.cause { + message += " (cause: \"\(cause)\")" + } + let serializableError = ContainerXPCError(code: error.code.description, message: message) let data = try? JSONEncoder().encode(serializableError) precondition(data != nil)