Skip to content

Conversation

@rayzhou-bit
Copy link

Description

Backported from openedx PR: openedx#37464

This PR future proofs artifact uploads to prevent the following error by creating unique artifact names.

Error: Failed to CreateArtifact: Received non-retryable error: Failed request: (409) Conflict: an artifact with this name already exists on the workflow run

This error used to occur when we had 2 django-version shards. It can potentially occur again if another shard is added for python, django, mongo or os version. This is due to github jobs running in parallel and attempting to upload artifacts with the same name at the same time.

Historically, this error triggered a lot when processing lms-4 (dj=pinned) and lms-4 (dj=5.2) since this shard took a longer time. For other shards, the artifact upload would finish on one job and the next job would delete before uploading another artifact with the same name. We were also losing logs on our unit tests because we were deleting them. This PR incidentally future proofs this as well.

Supporting information

openedx#37464
openedx#36160

Testing instructions

  1. In Github action's unit-test summary page, scroll down to the artifacts section at the bottom.
  2. Download pytest-warnings-json and open it.
  3. The folder should contain files with names that contain the python, django, mongo and os version. With our current config, you should see a pytest_warnings_xmodule-with-lms for ubuntu 22.04 and ubuntu 24.04.

@rayzhou-bit rayzhou-bit changed the title feat: future proof artifact uploads (#37464) feat: future proof artifact uploads (backport) Oct 17, 2025
@rayzhou-bit rayzhou-bit merged commit cc6208d into release-ulmo Oct 17, 2025
64 checks passed
@rayzhou-bit rayzhou-bit deleted the rzhou/unit-test-fix branch October 17, 2025 18:08
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.

3 participants