Troubleshooting Guide
Common issues and solutions for AegisGate Security Platform. For deployment help, try the Guided Setup setup first — it auto-detects your environment and generates a validated config.
Container Won’t Start
Symptom: Docker container exits immediately after starting.
Solutions:
Check container logs:
docker logs aegisgateVerify ports are available:
netstat -tlnp | grep -E '8080|8081|8443'Ensure ports are not already in use by another service.
Validate your config file:
./aegisgate-platform config validate aegisgate-platform.yaml
Health Check Fails
Symptom: curl http://localhost:8443/health returns 503 or unhealthy.
Solutions:
Wait 10–30 seconds for services to fully initialize.
Check the specific failing dependency:
curl http://localhost:8443/health | jq .dependenciesThe response shows which dependency is down: proxy, persistence, license, or certificates.
If
persistenceis down, check that the data directory is writable and the capability JSON file is valid.If
licenseis down, verifyAEGISGATE_LICENSE_KEYis set or the license file is readable.Review service logs for errors.
Dashboard Health Shows More Detail
Symptom: Need to check scanner or A2A subsystem specifically.
curl http://localhost:8443/api/v1/health | jq .dependencies
This includes scanner and A2A in addition to the base health checks.
High Latency
Symptom: Requests are slow through the proxy.
Solutions:
Check system resources:
docker stats aegisgateEnable debug logging temporarily:
AEGIS_LOG_LEVEL=debugScale horizontally if CPU-bound.
Rate Limiting Too Aggressive
Symptom: Legitimate requests are being rate-limited.
Solutions:
Check current rate limit:
curl http://localhost:8443/api/v1/config | jq .rate_limitingFor A2A rate limits, check per-agent counters in the logs.
Increase limit in config:
AEGIS_RATE_LIMIT=10000Check for misbehaving clients.
SSO Not Working
Symptom: Users cannot authenticate via SSO.
Solutions:
Verify SSO configuration:
curl http://localhost:8443/api/v1/config | jq .ssoCheck SSO provider connectivity.
Verify callback URL in identity provider.
A2A Troubleshooting
A2A guardrails are fail-closed. If anything is missing or invalid, the request is rejected with a structured error code. This section helps you diagnose and fix each error.
A2A_AUTH_FAILED / A2A_AUTH_NO_CERT / A2A_AUTH_MISSING_CN
Meaning: mTLS client certificate authentication failed.
Fix:
Verify the client certificate is present in the request:
curl --cert agent-cert.pem --key agent-key.pem \ --cacert ca.pem \ https://localhost:8443/api/v1/a2a/messageCheck that the certificate’s Common Name (CN) matches the agent ID.
Verify the CA that signed the client certificate is in AegisGate’s trust store.
A2A_INTEGRITY_MISSING / A2A_INTEGRITY_INVALID / A2A_INTEGRITY_MALFORMED
Meaning: HMAC-SHA256 integrity check failed.
Fix:
Compute the correct HMAC signature before sending:
BODY='{"message":"hello"}' SECRET='your-hmac-shared-secret' SIGNATURE=$(echo -n "$BODY" | openssl dgst -sha256 -hmac "$SECRET" -binary | base64) curl -H "A2A-Signature: $SIGNATURE" \ -H "Content-Type: application/json" \ -d "$BODY" https://localhost:8443/api/v1/a2a/messageVerify the shared secret matches between client and
configs/a2a.yaml.If
MALFORMED, ensure the signature is base64-encoded (not hex).
A2A_CAP_MISSING
Meaning: The A2A-Capability header was not provided.
Fix: Every A2A request must declare its capability:
curl -H "A2A-Capability: send_message" ...
A2A_CAP_DENIED
Meaning: The agent does not have the requested capability.
Fix:
Check the agent’s capabilities in
configs/a2a_caps.yaml:agents: agent-001: capabilities: - send_message - get_taskAdd the missing capability to the agent’s list.
Restart AegisGate or send a
SIGHUPto reload capabilities.
A2A_CAP_UNKNOWN_AGENT
Meaning: The agent ID is not registered in the capability map.
Fix: Add the agent to configs/a2a_caps.yaml with its allowed capabilities.
A2A_CAP_CHECK_FAILED
Meaning: Internal error during capability lookup.
Fix:
- Check that
configs/a2a_caps.yamlis valid YAML. - Verify the capability persistence file (JSON) is not corrupted.
- Check server logs for the specific error.
A2A_LICENSE_MISSING / A2A_LICENSE_INVALID
Meaning: A paid-tier capability was requested without a valid license.
Fix:
Verify your license status:
curl http://localhost:8443/api/v1/license/statusInclude the license key in the request:
curl -H "X-A2A-License-Key: your-license-key" ...If the license is expired or invalid, contact support for a renewal.
A2A_RATE_LIMITED
Meaning: The agent has exceeded its per-minute request limit.
Fix:
Check the
X-RateLimit-Resetheader to see when the limit resets.Reduce the request frequency from this agent.
If the limit is too low for your use case, adjust
a2a.yaml:rate_limit: requests_per_minute: 120 burst: 20
A2A_INTERNAL_ERROR
Meaning: Unexpected internal error (panic recovery — request denied).
Fix:
- Check server logs immediately — this indicates a bug.
- File an issue at GitHub Issues.
- Include the error code, approximate time, and any request details you can share.
A2A Capabilities Lost After Restart
Meaning: Agent capabilities that were set at runtime disappeared after a restart.
Fix: PersistentCapEnforcer should handle this automatically. If capabilities are lost:
Check that the capability persistence file exists and is writable:
ls -la data/a2a_capabilities.jsonVerify the file is valid JSON:
jq . data/a2a_capabilities.jsonIf the file is missing, capabilities will be re-seeded from
configs/a2a_caps.yamlon next startup.
Can’t Detect Threats
Symptom: Known threats not being detected.
Solutions:
Verify scanning is enabled:
curl http://localhost:8443/api/v1/config | jq .scanningCheck detection patterns are loaded:
curl http://localhost:8443/api/v1/statsReview audit logs for blocked/allowed decisions.
Guided Setup Troubleshooting
Setup Wizard Can’t Detect Environment
Symptom: ./aegisgate-platform setup --non-interactive generates an incorrect or minimal config.
Solutions:
Run in interactive mode to see detection results:
./aegisgate-platform setupThe wizard prints what it detected (Docker, K8s, systemd, bare metal) and why it selected a profile.
Specify a profile explicitly:
./aegisgate-platform setup --profile productionIf running in a container, the wizard may not detect the host environment. Use
--profileto select the right preset for your infrastructure.
Config Validation Reports Errors
Symptom: ./aegisgate-platform config validate reports errors.
Common errors and fixes:
| Error | Fix |
|---|---|
| Port conflict: proxy and MCP on same port | Change mcp_port to a different value |
| TLS cert path does not exist | Run ./aegisgate-platform setup --profile production to auto-fill cert paths, or provide valid paths |
| Invalid log level | Use one of: debug, info, warn, error |
| SIEM endpoint not reachable | Verify the SIEM URL is correct and the SIEM server is running |
| Rate limit too low | Set proxy_rate_limit ≥ mcp_rate_limit |
Maintenance Mode Stuck
Symptom: Platform is in maintenance mode and won’t disable.
Solutions:
Check maintenance status:
./aegisgate-platform maintenance statusDisable explicitly:
./aegisgate-platform maintenance disableIf using the REST API:
curl -X POST http://localhost:8443/api/v1/maintenance \ -H "Content-Type: application/json" \ -d '{"action": "disable"}'Restart the platform — maintenance state is in-memory and resets on restart.
Profile Not Found
Symptom: Error: unknown profile "my-profile"
Solutions:
List available profiles:
./aegisgate-platform --profile listUse one of:
quickstart,small-team,production,high-security,air-gapped.If you need a custom config, generate one from a profile and edit it:
./aegisgate-platform setup --profile production --output my-config.yaml # Edit my-config.yaml, then: ./aegisgate-platform --config my-config.yaml --embedded-mcp
Getting More Help
- Documentation: https://docs.aegisgatesecurity.io
- API Reference: /docs/api-reference/
- Email Support: security@aegisgatesecurity.io
- GitHub Issues: https://github.com/aegisgatesecurity/aegisgate-platform/issues