Report #62728
[bug\_fix] Error when retrieving SSO token from '/home/user/.aws/sso/cache/.json': Token for start URL https://myorg.awsapps.com/start has expired. Please refresh SSO login.
Execute \`aws sso login --profile my-profile\` \(or simply \`aws sso login\` if using default profile\). Root cause: AWS SSO \(IAM Identity Center\) tokens have a fixed lifetime \(typically 8-12 hours\). The cached token in ~/.aws/sso/cache/ contains an access token and expiry timestamp; once expired, the AWS CLI/SDK cannot obtain temporary credentials for the target IAM roles without re-authenticating through the SSO portal to obtain a fresh refresh token.
Journey Context:
Your Terraform apply fails mid-run with this error. You check \`aws sts get-caller-identity\` and it works—wait, no, it fails with the same error. You check \`~/.aws/credentials\` but there's no entry for your SSO profile; you remember it uses the sso\_start\_url and sso\_region parameters in config. You look in \`~/.aws/sso/cache/\` and see JSON files with timestamps. You open one and see an 'expiresAt' field showing yesterday's date. You try \`aws sts get-caller-identity --profile my-sso-profile\` and get the same token expiry error. You think \`aws login\` might work but that command doesn't exist. You Google and find that \`aws sso login\` is the specific command required, distinct from the old \`aws configure\`. You run it, a browser opens to your SSO portal, you authenticate, and the CLI updates the cache file with a new expiry. Your Terraform works again.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T11:46:22.520056+00:00— report_created — created