Skip to content
Integrations
Secrets Managers
Troubleshooting

Troubleshoot secrets managers

Each secrets manager failure in Astralis carries an error class that names the step that failed: reaching the manager, authenticating, reading the secret, or validating its contents.

Secrets manager integrations are part of Astralis Enterprise. For how caching and health work, see the behavior reference.

Find where it fails

ToolAnswers
Manager TestCan Astralis authenticate to the manager? It does not read a secret, so a passing test says nothing about the read policy.
Check in an integration's Credentials drawerDoes this secret exist, can Astralis read it, and does it hold every required key?
Integration Test connectionDo the fetched credentials work against the target system?

The common trap: a manager reads Healthy while integrations fail. The manager test proves only authentication. Run Check on the integration's secret to test the read permission.

AWS Secrets Manager errors

Error classMeaningFix
AccessDenied on assume roleAstralis could not assume the role.Apply the trust policy Astralis shows to the role, with the current ExternalId. After rotating the ExternalId, apply the new policy.
AccessDeniedExceptionThe role cannot read the secret.Allow secretsmanager:GetSecretValue on the secret. Check resource policies with aws:SourceVpc or aws:SourceVpce conditions.
DecryptionFailureThe role cannot decrypt the secret's KMS key.Allow kms:Decrypt on the key for the role.
ResourceNotFoundExceptionNo secret by that name or ARN in the manager's region.Check the reference and the manager's region. A secret in another account needs its full ARN.
InvalidRequestExceptionThe secret is scheduled for deletion.Restore the secret or point the integration at another one.
InvalidSecretArn, InvalidSecretNameThe reference is not a valid ARN or secret name.Use a name of letters, digits, and /_+=.@-, or a full Secrets Manager ARN.
InvalidRoleArnThe manager's role ARN is not an IAM role ARN.Edit the manager with an ARN like arn:aws:iam::123456789012:role/name.
BinarySecret, MissingSecretStringThe secret has no secret string.Store the credentials as a JSON secret string.
InvalidJSON, NotAJSONObjectThe secret string is not a JSON object.Store a JSON object, such as the payload template.

If a test reports that this deployment's own AWS identity failed, the problem is the Astralis deployment, not your account; the manager's health is unchanged. The classes are MissingSourceCredentials, CredentialRetrievalError, InvalidClientTokenId, SignatureDoesNotMatch, and UnrecognizedClientException.

On an Ethyca-hosted deployment, contact Ethyca support. On a deployment you run, check the AWS identity of the web server and every worker:

Identity sourceCheck
Instance roleAn instance profile is attached and the instance metadata service answers.
Container credentialsThe ECS task role or EKS Pod Identity association is in place and its credentials endpoint answers.
IRSAThe service account's role annotation and projected token, and the role's trust policy for the cluster's OIDC provider.
RegionIf the manager's region is an opt-in region, it is enabled in the deployment's AWS account; InvalidClientTokenId on assume role can mean it is not. RegionDisabledException means the region or STS is not active in the account that owns the role.

HashiCorp Vault errors

Error classMeaningFix
AppRoleLoginRejectedVault rejected the AppRole login. The manager's health reads Vault rejected the AppRole login.Check the role ID, generate a new secret ID if it expired or ran out of uses, and confirm the auth mount and namespace.
Forbidden, UnauthorizedThe AppRole logged in, but its policy does not allow reading the path. The manager's health reads Vault denied reading a secret.Grant read on the path. For KV v2, the policy path includes data/.
InvalidPathNo secret at the reference.Check the reference is relative to the mount, and that the KV version matches the mount.
InsecureVaultAddressThe address is not HTTPS.Serve Vault over HTTPS.
PrivateVaultAddressThe address resolves to a private, loopback, or reserved IP.Expose Vault on a public address. For HCP Vault Dedicated, enable public cluster access.
InvalidVaultAddressThe address has a query, credentials, whitespace, or an IPv6 literal.Use a plain https://host[:port] address.
InvalidCaCertificateThe CA certificate is not PEM content.Paste the PEM certificate itself, not a file path.
InvalidVaultPathThe mount, namespace, or reference contains characters or segments Vault paths cannot have.Use letters, digits, and /_.+=@- with no empty, ., or .. segments.
VaultDown, InternalServerErrorVault is sealed or unavailable.Unseal or restore Vault. Astralis serves cached values for up to 30 minutes meanwhile.
NonJsonResponse, UnexpectedResponseVault answered with something other than its API, often a redirect from a standby node, or a proxy or captive-portal page.Point the address at the active node or a load balancer.

Errors on any manager

Error classMeaningFix
PayloadValidationErrorThe secret is missing required keys or a value has the wrong type. The message names the fields, never the values.Run Check and add the missing keys.
MissingReferenceThe integration is linked to a manager without a secret reference.Enter the Secret in the Credentials drawer.
ReferenceNotAllowedThe reference is outside the manager's reference_prefix.Use a reference under the prefix, in the same form (name or ARN).
SecretsManagerNotFoundThe integration points at a manager that no longer exists.Point it at another manager.
ConnectionTypeNotEligibleYour deployment does not allow this integration type to read from a manager.See eligible integration types.
CircuitOpenA recent read failed and Astralis is waiting 30 seconds before trying again.Fix the underlying failure, then retry.

Common situations

A rotated credential is not picked up. Astralis uses its cached value for up to 15 minutes. A failed connection makes it fetch again immediately, so the next attempt after the target rejects the old credential uses the new one.

The manager is unreachable and integrations still work. Astralis is serving cached values; the manager reads Serving cached credentials. Integrations start failing 45 minutes after the last successful read.

A Jira ticket integration refuses the secret. A manager supplies only domain, username, and api_key to a Jira ticket integration. OAuth keys such as access_token, refresh_token, and client_secret are refused; remove them from the secret.

A Jira ticket integration has no Manage credentials button. It follows a linked Jira integration onto that integration's manager. Unlink it in its Credentials tab first; see Jira ticket integrations.

Revoke access

Revoke access in your manager. Deleting the manager in Astralis revokes nothing in your account, and Astralis refuses to delete a manager while integrations read from it.

  • AWS: remove the role's secretsmanager:GetSecretValue permission on the secrets, and any resource policy on the secrets that grants the role access. Reads fail once the change propagates, usually within minutes. To cut off issued sessions at once, use Revoke active sessions on the role in IAM. Removing the trust policy statement stops new role sessions, but a session AWS already issued keeps working until it expires, by default after one hour.

  • Vault: remove the read grant first. Vault checks policies on every request, so this also stops tokens Astralis already holds. Then destroy the secret IDs to prevent new logins, and revoke the tokens in use:

    # Immediate: the role's policy grants nothing
    vault policy delete astralis-read
     
    # No new logins
    vault list auth/approle/role/astralis/secret-id
    vault write auth/approle/role/astralis/secret-id-accessor/destroy secret_id_accessor=<accessor>
     
    # Tokens in use. -mode=path revokes every token issued through this login path,
    # which covers every AppRole on the mount, not only the Astralis role.
    # Requires sudo on sys/leases/revoke-prefix/auth/approle/login.
    vault token revoke -mode=path auth/approle/login

A denied read is a permanent failure: Astralis clears its cached value and never serves it from the stale window. Each Astralis process can still use a value it read in the last 15 minutes until that cached copy expires, and an operation already in progress finishes.

To stop sooner, rotate the credential at the target system, such as the database password or API key. The next connection fails, Astralis reads the secret again, and the read is refused. To stop one integration without touching your manager, switch it to credentials entered in Astralis.

Rotating the secret's value in your manager is not a revocation: Astralis reads the new value.