From 754774d096bf8985cb5997910b139eea72118d72 Mon Sep 17 00:00:00 2001 From: Nick Coghlan Date: Fri, 17 Oct 2025 15:12:31 +0700 Subject: [PATCH] Handle pre-formatted server API errors --- src/lmstudio/json_api.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/lmstudio/json_api.py b/src/lmstudio/json_api.py index c70f57b..711bcc3 100644 --- a/src/lmstudio/json_api.py +++ b/src/lmstudio/json_api.py @@ -335,7 +335,16 @@ def __init__(self, message: str, details: DictObject | None = None) -> None: self._raw_error = self.server_error = None formatted_message = message else: - raw_details = dict(details) + raw_details: DictObject + try: + raw_details = dict(details) + except ValueError: + # Server *should* be providing the details as an error dict, + # but avoid crashing if it sends a string or array instead + raw_details = { + "title": "Server API error", + "cause": str(details), + } raw_details.pop("stack", None) self._raw_error = raw_details try: