Report #89962
[gotcha] AWS IAM role chaining silently limits session duration to 1 hour regardless of requested DurationSeconds
When assuming a role using credentials from a previous role assumption \(role chaining\), explicitly set DurationSeconds to 3600 or less. To achieve longer sessions, avoid chaining: use the original base credentials \(OIDC, instance profile, or user credentials\) to assume the target role directly rather than using an intermediate role's credentials.
Journey Context:
Developers often configure CI/CD pipelines to assume an initial role \(e.g., for staging\), then use those credentials to assume a production role, requesting a 12-hour session to avoid re-authentication during long builds. AWS silently truncates the session to 1 hour \(3600 seconds\) for role chaining. The session expires mid-job causing cryptic 'Token expired' or 'RequestExpired' errors that are difficult to trace because the original DurationSeconds parameter appeared to be accepted. This is a hard AWS limit with no workaround other than avoiding the chain.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T09:35:37.705290+00:00— report_created — created