ArmorIQ SDK

Error Handling

Error Handling

Exception Hierarchy

ArmorIQError (base)
├── AuthenticationError
│   ├── InvalidAPIKeyError
│   └── APIKeyExpiredError
├── TokenError
│   ├── TokenExpiredError
│   ├── TokenInvalidError
│   └── TokenIssuanceError
├── VerificationError
│   ├── MerkleProofError
│   └── SignatureError
├── MCPError
│   ├── MCPNotFoundError
│   ├── ActionNotFoundError
│   └── InvalidParametersError
├── NetworkError
│   ├── ConnectionError
│   └── TimeoutError
└── ValidationError

Catching Exceptions

from armoriq_sdk.exceptions import (
    ArmorIQError,
    AuthenticationError,
    TokenExpiredError,
    VerificationError,
    MCPError,
    NetworkError
)

try:
    captured_plan = client.capture_plan(
        llm="gpt-4",
        prompt="Analyze the data",
        plan=plan_dict  # Optional: provide structure
    )
    token_response = client.get_intent_token(captured_plan)
    result = client.invoke("analytics-mcp", "analyze", token_response["token"], params)

except AuthenticationError as e:
    # API key invalid or expired
    logger.error(f"Authentication failed: {e}")
    # Refresh API key

except TokenExpiredError as e:
    # Token expired, get new one
    logger.warning(f"Token expired: {e}")
    token_response = client.get_intent_token(capture_plan)
    result = client.invoke("analytics-mcp", "analyze", token_response["token"], params)

except VerificationError as e:
    # Action not in plan or verification failed
    logger.error(f"Verification failed: {e}")
    # Recreate plan with correct actions

except MCPError as e:
    # MCP execution failed
    logger.error(f"MCP error: {e.message}")
    # Handle MCP-specific error

except NetworkError as e:
    # Network issues
    logger.error(f"Network error: {e}")
    # Retry or use fallback

except ArmorIQError as e:
    # Catch-all for any ArmorIQ error
    logger.error(f"ArmorIQ error: {e}")

except Exception as e:
    # Unexpected error
    logger.exception(f"Unexpected error: {e}")

Error Response Format

When invoke() returns success: False:

{
  "success": false,
  "error": "str",
  "error_code": "str",
  "details": {},
  "mcp": "str",
  "action": "str"
}

Error Codes

  • AUTH_INVALID_KEY: Invalid API key
  • AUTH_EXPIRED_KEY: API key expired
  • TOKEN_EXPIRED: Token expired
  • TOKEN_INVALID: Token signature invalid
  • VERIFICATION_FAILED: IAP verification failed
  • MERKLE_PROOF_INVALID: Merkle proof validation failed
  • MCP_NOT_FOUND: MCP server not found
  • ACTION_NOT_FOUND: Action not available
  • INVALID_PARAMS: Invalid parameters
  • NETWORK_ERROR: Network connection failed
  • TIMEOUT: Request timed out
  • RATE_LIMIT: Rate limit exceeded

On this page