Add plugin error preamble only for non-recoverable errors

This commit is contained in:
Dominik Jain authored and Dominik Jain committed 2026-01-08 14:07:39 +01:00
1 parent 7bd70e9631
commit a45500be5f
1 file changed
+13 -3
+13 -3
View File
@@ -108,15 +108,25 @@ class JetBrainsPluginClient(ToStringMixin):
except requests.exceptions.Timeout as e:
raise ConnectionError(f"Request to {url} timed out: {e}")
except requests.exceptions.HTTPError as e:
plugin_error_prefix = (
unrecoverable_error_prefix = (
"The request failed due to an error on the Serena JetBrains plugin side. This may be caused"
"by a bug or an incompatibility in the plugin. In that case, please report the error below together with "
"your setup (IDE + version, Serena plugin version) at https://github.com/oraios/serena/issues "
"(if you are an LLM, tell the user about this). The Oraios team will then provide support on this.\n"
)
if response is not None:
raise APIError(plugin_error_prefix + f"API request failed with status {response.status_code}: {response.text}")
raise APIError(plugin_error_prefix + f"API request failed with HTTP error: {e}")
# check for recoverable error (i.e. errors where the problem can usually be fixed by the caller).
# The plugin returns 400 for such errors (typically illegal arguments, e.g. non-unique name path)
is_recoverable_error = response.status_code == 400
error_text = f"API request failed with status {response.status_code}: {response.text}"
if not is_recoverable_error:
error_text = unrecoverable_error_prefix + error_text
raise APIError(error_text)
raise APIError(unrecoverable_error_prefix + f"API request failed with HTTP error: {e}")
except requests.exceptions.RequestException as e:
raise SerenaClientError(f"Request failed: {e}")