Reference · Troubleshooting
Troubleshooting common errors.
Every error Axiom surfaces has a specific cause and a specific fix. This page collects the issues we see most often, grouped by where they happen.
Faster path
AWS connection
AccessDenied (sts:AssumeRole)
Cause
Trust policy points at the wrong Axiom AWS account, or the role doesn't exist.
Fix
Re-copy the trust policy from /operator/onboarding exactly. Confirm the role appears in IAM → Roles.
InvalidExternalId
Cause
The External ID in your trust policy condition doesn't match what Axiom sends.
Fix
Re-paste the External ID from the onboarding screen. It must match character-for-character. If you rotated, re-onboard to get a fresh ID.
Cannot assume role: TokenSignatureInvalid
Cause
Clock skew on the role's account, or a permissions boundary blocks sts:AssumeRole.
Fix
Check the role has no Permissions Boundary that excludes sts:AssumeRole. Confirm AWS account-level clock is in sync.
MalformedPolicyDocumentException
Cause
JSON syntax error in the trust or permission policy.
Fix
Use AWS Console's built-in JSON validator. Common issues: trailing commas, missing quotes, copy-paste line breaks.
Scanning
Scan returns 0 resources
Cause
Role has no permission to describe resources in the selected regions, or the regions truly have no resources.
Fix
Run aws sts get-caller-identity --profile axiom-role in CloudShell to confirm assumption works. Try a region with known resources.
Partial scan — some services missing
Cause
Specific service Describe permission missing, or service not available in the region.
Fix
Confirm the permission policy includes all Describe* actions for the service. Check service availability for the region in AWS docs.
Scan stuck at 'queued'
Cause
Background worker is offline or queue is saturated.
Fix
Wait 60 seconds and refresh. If still queued, disconnect/reconnect the cloud account to retrigger.
Scan takes > 5 minutes
Cause
Large account (thousands of resources) — normal. Or rate limiting from AWS.
Fix
Initial scans on accounts with 1000+ resources can take 10-15 minutes. Subsequent scans are incremental and complete in 1-3 minutes.
Execution + approvals
Plan blocked: blast radius too broad
Cause
Plan affects more resources than the configured blast-radius threshold.
Fix
Split the plan into smaller phases. Or raise the blast-radius threshold in governance settings (requires approval).
Plan blocked: rollback path unverified
Cause
Axiom can't construct a pre-verified rollback for at least one item.
Fix
Review the plan items — usually a missing AWS backup, snapshot, or version. Enable the missing capability and re-plan.
Approval expired
Cause
Plan items expire after 24 hours if not approved.
Fix
Re-run the scan to generate a fresh plan with current state. Approve within the window.
Apply failed mid-execution
Cause
Network, AWS API throttling, or pre-flight condition changed between approval and apply.
Fix
Rollback fires automatically. Check audit log for the exact failure. Re-plan and re-approve.
ReleaseOps
GitHub connector won't authorize
Cause
Org-level OAuth restriction or missing scopes.
Fix
Confirm the GitHub App installation has 'Read access to actions, contents, deployments, metadata, pull requests'. Org admin may need to approve.
Pipelines not appearing
Cause
Connector connected but webhook delivery failing.
Fix
Check GitHub App → Advanced → Recent Deliveries for failure reason. Re-deliver from there to retry.
Readiness score shows N/A
Cause
Not enough deployment history (< 5 deploys) to compute the trend.
Fix
Wait for additional deploys. Or import historical data from your CI/CD system.
Dashboard + UI
Activity feed empty
Cause
No real activity yet — feed falls back to sample events for orientation.
Fix
Run your first scan. After the first scan, the feed automatically switches to live data and shows a 'Live data' badge in the footer.
Charts show '—' or zero
Cause
Insufficient scan history to render trends.
Fix
At least 2-3 scans are needed to render trend lines. After a week of recurring scans, all charts populate fully.
Still stuck?
If your issue isn't here, the cause is non-obvious, or you suspect a bug:
Need a human?
Most flows are documented — but we'll help if anything is unclear.