Report #50310
[bug\_fix] AWS SSO token expired: "The security token included in the request is expired" when using AWS SSO profiles
The cached SSO OIDC token \(not the IAM role credentials\) has expired. Run \`aws sso login --profile \` to refresh the SSO token, or manually delete the stale JSON files in \`~/.aws/sso/cache/\`. The IAM role credentials in \`~/.aws/cli/cache/\` are derived from the SSO token, so refreshing the root SSO OIDC token is required when it expires \(default 8-12 hours\).
Journey Context:
You set up AWS SSO months ago and it worked fine. This morning, all CLI commands fail with "The security token included in the request is expired". You check \`aws configure list\` and see the profile is using SSO. You try \`aws sts get-caller-identity\` and it fails. You check \`~/.aws/credentials\` but it's empty because SSO doesn't store long-term keys there. You find \`~/.aws/sso/cache/\` with JSON files containing \`expiresAt\` timestamps that are yesterday's date. You realize the SSO OIDC token \(which vends the temporary IAM credentials\) expires independently of the IAM role session. Running \`aws sso login\` updates the browser session, writes new cache files, and the CLI works again because the new OIDC token allows AssumeRole to get fresh IAM creds.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T14:55:39.157018+00:00— report_created — created