Skip to content

Error Categories

Pingward classifies test failures into categories to help you understand and respond to issues.

Category List

Connection Errors

CategoryDescriptionCommon Causes
TimeoutRequest exceeded timeout limitSlow server, network issues, server overload
ConnectionRefusedServer rejected the connectionServer down, wrong port, firewall
DnsResolutionFailedCould not resolve hostnameDNS misconfiguration, domain expired
SslCertificateErrorTLS/SSL handshake failedExpired certificate, invalid cert, hostname mismatch
ConnectionResetConnection was resetServer crash, network interruption
RedirectLoopToo many redirectsMisconfigured redirects

HTTP Errors

CategoryDescriptionHTTP Codes
ServiceUnavailableServer cannot handle request502, 503, 504
ServerErrorServer-side error500, 501, other 5xx
BadRequestClient error in request400
AuthenticationFailedAuthentication required/failed401
ForbiddenAccess denied403
NotFoundResource not found404
RateLimitedToo many requests429
ClientErrorOther client errorsOther 4xx

Validation Errors

CategoryDescription
AssertionFailedResponse didn't match assertions
ContentMismatchResponse content unexpected
BodyTooLargeResponse exceeded size limit

MCP Protocol Errors

CategoryDescription
McpProtocolNegotiationFailureMCP initialize handshake failed or returned an error
McpCapabilityMismatchServer does not advertise expected capabilities
McpToolInvocationFailureCanary tool invocation returned an error
McpResourceAccessFailureCanary resource read failed
McpSessionFailureSession management error, timeout, or unexpected failure

A2A Protocol Errors

CategoryDescription
A2aAgentCardDiscoveryFailureAgent card unreachable, returned HTTP error, or invalid JSON
A2aTaskLifecycleFailureProbe task failed, was rejected, or returned an error
A2aSkillMismatchExpected skills not found in agent card
A2aTaskTimeoutProbe task did not complete within the configured timeout
A2aUnsupportedOperationExpected capabilities not supported by agent

GraphQL Errors

CategoryDescription
GraphQlIntrospectionFailureIntrospection query failed or is disabled
GraphQlSchemaValidationErrorSchema doesn't match expected types or fields
GraphQlQueryErrorCanary query returned GraphQL errors
GraphQlTransportErrorHTTP transport failure for GraphQL endpoint
GraphQlAuthorizationErrorQuery-level authorization failure

gRPC Errors

CategoryDescription
GrpcConnectionFailureCannot establish gRPC HTTP/2 connection
GrpcHealthCheckFailureHealth check returned NOT_SERVING or SERVICE_UNKNOWN
GrpcServiceNotFoundService not found via health check
GrpcDeadlineExceededgRPC call exceeded deadline
GrpcPermissionDeniedPERMISSION_DENIED or UNAUTHENTICATED status
GrpcUnavailablegRPC server is unavailable

Other

CategoryDescription
UnknownUnclassified error

Default Severities

Each category has a default severity that reflects its typical impact:

Critical (Immediate Action)

  • ServiceUnavailable
  • Timeout
  • ConnectionRefused
  • DnsResolutionFailed
  • McpProtocolNegotiationFailure
  • A2aAgentCardDiscoveryFailure
  • GrpcConnectionFailure
  • GrpcHealthCheckFailure
  • GraphQlTransportError
  • GrpcUnavailable

High (Urgent)

  • SslCertificateError
  • ServerError
  • ConnectionReset
  • RedirectLoop
  • McpToolInvocationFailure
  • McpSessionFailure
  • A2aTaskLifecycleFailure
  • A2aTaskTimeout
  • GraphQlIntrospectionFailure
  • GraphQlQueryError
  • GraphQlAuthorizationError
  • GrpcDeadlineExceeded
  • GrpcPermissionDenied

Medium (Important)

  • AssertionFailed
  • AuthenticationFailed
  • Forbidden
  • RateLimited
  • ContentMismatch
  • McpCapabilityMismatch
  • McpResourceAccessFailure
  • A2aSkillMismatch
  • A2aUnsupportedOperation
  • GraphQlSchemaValidationError
  • GrpcServiceNotFound

Low (Minor)

  • BadRequest
  • NotFound
  • ClientError
  • BodyTooLarge
  • Unknown

Customizing Severity

You can change the severity for any category in Settings → Severity.

Common customizations:

  • NotFound → Critical: For critical resources that must exist
  • Timeout → Medium: For known-slow APIs
  • AssertionFailed → High: For critical validation checks

Using Categories in Routing

Route alerts based on error category:

Conditions:
  Error Categories: Timeout, ConnectionRefused, ServiceUnavailable

Actions:
  → PagerDuty (Infrastructure Team)
Conditions:
  Error Categories: AssertionFailed, ContentMismatch

Actions:
  → Slack #api-team

Troubleshooting by Category

Timeout

  • Check server response times
  • Look for resource exhaustion
  • Check network path
  • Consider increasing timeout threshold

ConnectionRefused

  • Verify server is running
  • Check correct port
  • Review firewall rules
  • Check security groups

DnsResolutionFailed

  • Verify domain name is correct
  • Check DNS propagation
  • Review DNS server configuration
  • Check for domain expiration

SslCertificateError

  • Check certificate expiration
  • Verify certificate chain
  • Ensure hostname matches
  • Update root certificates

ServiceUnavailable

  • Check upstream dependencies
  • Review server capacity
  • Look for deployment issues
  • Check load balancer health

McpProtocolNegotiationFailure

  • Verify the MCP server is running and reachable
  • Check the endpoint URL is correct (must support streamable HTTP)
  • Verify the protocol version is supported by the server
  • Check authentication headers if required

McpCapabilityMismatch

  • Verify the server advertises the expected capabilities
  • Check if a server update removed capabilities
  • Update expected capabilities in test configuration

McpToolInvocationFailure

  • Verify the canary tool name is correct
  • Check the tool arguments are valid JSON
  • Look for tool-specific error messages in the result

McpResourceAccessFailure

  • Verify the canary resource URI is correct
  • Check the resource exists on the server
  • Look for permission errors

McpSessionFailure

  • Check for server timeouts or restarts
  • Review server logs for session errors
  • Verify session management is working correctly

A2aAgentCardDiscoveryFailure

  • Verify the base URL is correct
  • Check that /.well-known/a2a/agent-card is accessible
  • Verify the agent card is valid JSON with a name field
  • Check authentication if the agent card is protected

A2aTaskLifecycleFailure

  • Check agent logs for task processing errors
  • Verify the probe task message is valid
  • Look for JSON-RPC error codes in the result

A2aSkillMismatch

  • Verify the expected skill IDs match the agent card
  • Check if an agent update removed skills
  • Update expected skills in test configuration

A2aTaskTimeout

  • Increase the probe task timeout in test configuration
  • Check if the agent is under heavy load
  • Verify the agent is processing tasks correctly

A2aUnsupportedOperation

  • Verify the expected capabilities match the agent card
  • Check if an agent update removed capabilities
  • Update expected capabilities in test configuration

GraphQlIntrospectionFailure

  • Verify the GraphQL endpoint URL is correct
  • Check if introspection is disabled on the server
  • Verify authentication credentials if introspection requires authorization
  • Check server logs for introspection query errors

GraphQlSchemaValidationError

  • Verify the expected types and fields match the current schema
  • Check if a recent deployment changed the schema
  • Update expected types and fields in test configuration
  • Review schema migration history

GraphQlQueryError

  • Verify the canary query syntax is valid
  • Check that canary variables match the query's expected input
  • Look for resolver errors in the server logs
  • Verify the queried data exists

GraphQlTransportError

  • Verify the GraphQL endpoint URL is correct and reachable
  • Check for DNS resolution or network connectivity issues
  • Verify the server is running and accepting HTTP requests
  • Check for TLS/SSL certificate issues

GraphQlAuthorizationError

  • Verify authentication tokens or API keys are valid and not expired
  • Check that the authenticated user has permission for the query
  • Review field-level authorization rules on the server
  • Check for CORS issues if applicable

GrpcConnectionFailure

  • Verify the gRPC server address and port are correct
  • Check that the server supports HTTP/2
  • Verify TLS configuration if using secure connections
  • Check firewall rules and network connectivity

GrpcHealthCheckFailure

  • Verify the gRPC health checking service is implemented
  • Check the service-specific health status if a service name is configured
  • Review server logs for health check handler errors
  • Verify the health check service is registered correctly

GrpcServiceNotFound

  • Verify the service name is fully qualified (e.g., "package.ServiceName")
  • Check that the service is registered with the health check provider
  • Verify server reflection is enabled if using service discovery
  • Check if a recent deployment removed the service

GrpcDeadlineExceeded

  • Increase the timeout in test configuration
  • Check server response times and resource utilization
  • Look for slow dependencies or database queries
  • Verify network latency between Pingward and the server

GrpcPermissionDenied

  • Verify the auth token is valid and not expired
  • Check that the token has the required scopes or roles
  • Review server-side authorization policies
  • Check for IP-based access restrictions

GrpcUnavailable

  • Verify the gRPC server is running
  • Check load balancer health and configuration
  • Review server resource utilization (CPU, memory)
  • Check for recent deployments or configuration changes

Pingward - API Monitoring Made Simple