isSessionTerminatedError function
Checks whether an error is an MCP server reporting it no longer holds our session.
Implementation
bool isSessionTerminatedError(Object? error) {
if (error == null) {
return false;
}
if (error is McpJsonRpcException) {
if (error.code == mcpSessionTerminatedLegacyCode) {
return true;
}
if (error.code == mcpInvalidRequestErrorCode &&
error.message.contains(mcpSessionTerminatedMessage)) {
return true;
}
}
if (error is McpHttpStatusException) {
if (error.statusCode == 404 &&
error.body.toLowerCase().contains('session terminated')) {
return true;
}
}
final String msg = error.toString();
if (msg.contains(mcpSessionTerminatedMessage)) {
if (msg.contains('32600') || msg.contains('-32600')) {
return true;
}
}
return false;
}