Verify the public path
Run these checks through the same HTTPS hostname, load balancer, and firewall path that Composio uses:
If the checks work from your network but not from Composio, review the public DNS, certificate, edge
source allowlist, and Composio egress addresses.
Check Composio authentication
If Composio receives401, compare these values first:
A project ID beginning with
pr_ is not a valid AUTH_AUDIENCE. Keyring authenticates the Composio
organization; project connection is configured separately.
Common failures
Keyring does not start
Keyring does not start
Likely cause: a required environment variable is missing, the encryption configuration is
invalid, production URLs are not HTTPS, KMS identity cannot initialize, or required auditing has
no collector URL.Fix: compare the deployment against Runtime configuration and
Encryption configuration. Startup logs name the invalid field without
printing its secret value.
Transfer-key check returns 500
Transfer-key check returns 500
Likely cause: the asymmetric key is missing, disabled, unreachable, uses the wrong RSA OAEP
algorithm, or the Keyring workload lacks public-key access.Fix: confirm the configured transfer-key version, provider permissions, and RSA OAEP SHA-256
properties.
Composio receives 403
Composio receives 403
Likely cause: the toolkit, destination, token operation, redirect, secret placement, key, or
environment is denied by policy.Fix: use the request ID to find the warning event. Correct a toolkit or destination mismatch;
do not broaden the provider allowlist before understanding the denial.
KMS or Vault operations fail
KMS or Vault operations fail
Likely cause: workload identity is missing, the exact key permission is absent, a key is disabled,
or the configuration references an old key.Fix: verify the ECS task role, Cloud Run service identity, Kubernetes workload identity, or Vault
auth role. Keep historical keys configured until every stored credential has been migrated.
Status codes in Keyring logs
A provider can return its own non-success status. Use the Keyring request ID and event source to
distinguish a provider response from a Keyring denial.
Safe diagnostics
Collect only:- Keyring request ID and timestamp;
- HTTP status and safe error tag;
- deployment environment and release/image tag;
- toolkit and provider hostname; and
- relevant KMS key identifier, workload role, or audit collector status.