Skip to content

ARCP Problem Details Reference

This directory contains documentation for all problem types that can be returned by the ARCP API. These problems follow the RFC 9457 Problem Details for HTTP APIs standard.

Problem Types by Category

🤖 Agent Problems

🔐 Authentication Problems

🛡️ Authorization Problems

🔢 PIN Problems

⚙️ Configuration Problems

🔧 Service Problems

✅ Validation Problems

🚦 Rate Limiting Problems

📦 Request Size Problems

🔧 Generic Problems

Problem Details Format

All ARCP problems follow this structure:

{
  "type": "https://arcp.0x001.tech/docs/problems/{problem-type}",
  "title": "Human Readable Title",
  "status": 400,
  "detail": "Specific details about this occurrence",
  "instance": "/request/path",
  "timestamp": "2024-01-01T12:00:00Z",
  "request_id": "req_12345"
}

Using Problem Details

In Client Applications with ARCP

When using the ARCP client, errors are automatically handled and converted to appropriate exceptions:

import asyncio
from arcp import ARCPClient, ARCPError, AuthenticationError, RegistrationError

async def error_handling_example():
    async with ARCPClient("https://arcp.example.com") as client:
        try:
            # This might fail if agent doesn't exist
            agent = await client.get_agent("missing-agent")

        except ARCPError as e:
            # ARCP client automatically parses problem details
            print(f"ARCP Error: {e}")

            # You can check for specific error types
            if "not found" in str(e).lower():
                print("Agent not found - handle missing agent scenario")
            elif "authentication" in str(e).lower():
                print("Authentication required - handle login")

        try:
            # Agent registration example
            agent_info = await client.register_agent(
                agent_id="my-agent",
                name="My Agent",
                # ... other required parameters
            )

        except AuthenticationError:
            print("Authentication failed - check credentials")
        except RegistrationError as e:
            print(f"Registration failed: {e}")
        except ARCPError as e:
            print(f"General ARCP error: {e}")

if __name__ == "__main__":
    asyncio.run(error_handling_example())

For Troubleshooting

  1. Check the exception type - ARCP client maps problems to specific exceptions
  2. Read the exception message - Contains the problem detail information
  3. Note the timestamp - Helps correlate with server logs
  4. Use the request_id - Reference when contacting support

Base URI

All ARCP problem types use the base URI:

https://arcp.0x001.tech/docs/problems/

This documentation is accessible at that base URL for programmatic problem resolution.