isSessionTerminatedError function

bool isSessionTerminatedError(
  1. Object? error
)

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;
}