fix: let the integ credentials outlive the CodeBuild build they poll - #97
Merged
andychoquette merged 1 commit intoSep 23, 2026
Merged
Conversation
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>
crowecawcaw
approved these changes
Sep 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Add
role-duration-seconds: 10800to bothconfigure-aws-credentialssteps inreusable_integration_test.yml.Why
aws-codebuild-run-buildpolls the build using these credentials, so the session has to outlive the build, not just start it. Neither step setrole-duration-seconds, so both got the 1 hour default.Integ builds already exceed that.
deadline-cloud-for-3ds-maxrelease 0.4.2 failed twice this way — attempt 1 died at 1h01m, attempt 2 at 1h00m: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
refs/tags/0.4.2mainlinemainline(09-22, 09-18, 09-17)Even the routine 48-minute build left only ~12 minutes of headroom. Builds against
refs/tags/*take roughly twice as long as the equivalentmainlinebuild — 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
*_IntegOIDCRolein the CI account already allows it, so no IAM change is required. Verified by matchingRoleIdfrom the failing job'sAuthenticated as assumedRoleId AROA5U2N4YCXWZP3KBWTXthat the 3ds Max job assumesdeadline_cloud_for_3ds_max_dev_IntegOIDCRole,MaxSessionDuration10800; 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-credentialsfails fast whenrole-duration-secondsexceeds a role'sMaxSessionDuration, 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.