Skip to content

fix: let the integ credentials outlive the CodeBuild build they poll - #97

Merged
andychoquette merged 1 commit into
aws-deadline:mainlinefrom
andychoquette:fix/integ-role-duration
Sep 23, 2026
Merged

andychoquette merged 1 commit into
aws-deadline:mainlinefrom
andychoquette:fix/integ-role-duration

Conversation

@andychoquette

Copy link
Copy Markdown

What

Add role-duration-seconds: 10800 to both configure-aws-credentials steps in reusable_integration_test.yml.

Why

aws-codebuild-run-build polls the build using these credentials, so the session has to outlive the build, not just start it. Neither step set role-duration-seconds, so both got the 1 hour default.

Integ builds already exceed that. deadline-cloud-for-3ds-max release 0.4.2 failed twice this way — attempt 1 died at 1h01m, attempt 2 at 1h00m:

##[error]The security token included in the request is expired

Meanwhile the build it was polling — deadline-cloud-for-3ds-max-mainline-windows-integ, started 2026-09-23 09:32 PDT — SUCCEEDED at 11:06, after 94 minutes. The tests passed. Only the poller's credentials ran out, and the release sat blocked on a green job it could never produce.

Margins

Source Duration Status
refs/tags/0.4.2 94 min SUCCEEDED
mainline 48 min SUCCEEDED
mainline (09-22, 09-18, 09-17) 48 min SUCCEEDED

Even the routine 48-minute build left only ~12 minutes of headroom. Builds against refs/tags/* take roughly twice as long as the equivalent mainline build — 48 vs 94 minutes on the same day against the same code — so the release path is the one that goes over. That's worth investigating separately; it isn't addressed here.

Why 10800

Every *_IntegOIDCRole in the CI account already allows it, so no IAM change is required. Verified by matching RoleId from the failing job's Authenticated as assumedRoleId AROA5U2N4YCXWZP3KBWTX that the 3ds Max job assumes deadline_cloud_for_3ds_max_dev_IntegOIDCRole, MaxSessionDuration 10800; the other nine integ roles are all 10800 too.

Caller safety

Nine repos call this workflow: deadline-cloud, deadline-cloud-for-{3ds-max,blender,houdini,maya,unreal-engine,vred}, deadline-cloud-job-attachments, private-deadline-cloud-staging.

configure-aws-credentials fails fast when role-duration-seconds exceeds a role's MaxSessionDuration, so a caller whose role allowed less would break immediately and visibly rather than silently. The sub-10800 roles I found in the account (openjd-cli-*, Fortify*, bealine_client_software*) are not callers of this workflow.

Reviewer check: I could not map private-deadline-cloud-staging's integ role, so please confirm that one allows 10800.

Testing

Not exercisable outside a real integ run. Validated that the workflow still parses as YAML and that both credential steps carry the new value.

aws-codebuild-run-build polls the CodeBuild build using the credentials from
configure-aws-credentials, so the session has to outlive the build rather than just
start it. Neither credential step set role-duration-seconds, so both got the 1 hour
default.

Integ builds already exceed that. deadline-cloud-for-3ds-max release 0.4.2 failed
twice this way: the GitHub job died at 1h01m and again at 1h00m with

    ##[error]The security token included in the request is expired

while the CodeBuild build it was polling, deadline-cloud-for-3ds-max-mainline-windows-integ
started 2026-09-23 09:32 PDT, SUCCEEDED at 11:06 -- 94 minutes. The tests passed; only
the poller's credentials ran out, and the release was blocked on a green job it could
never get.

Mainline builds for that project run ~48 min, so the margin was only ~12 minutes even
before anything grew. Builds against refs/tags/* take roughly twice as long as the
equivalent mainline build (48 min vs 94 min on the same day, same code), so the release
path is the one that goes over.

10800s is chosen because every *_IntegOIDCRole in the CI account already allows it, so no
IAM change is needed. Verified by RoleId that the 3ds Max job assumes
deadline_cloud_for_3ds_max_dev_IntegOIDCRole, MaxSessionDuration 10800; the other nine
integ roles match. configure-aws-credentials fails fast when role-duration-seconds
exceeds a role's MaxSessionDuration, so a future caller whose role allows less would
break immediately and visibly rather than silently.

Signed-off-by: andychoquette <78888816+andychoquette@users.noreply.github.com>
@andychoquette
andychoquette requested a review from a team as a code owner September 23, 2026 19:18
@andychoquette
andychoquette merged commit c2e26f3 into aws-deadline:mainline Sep 23, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants