Buildkite artifacts upload failure

Hi there,

I had a build job that completed successfully but failed during the artifact upload phase.
The error occurs when attempting to upload some iOS build artifacts (IPA and dSYM files) to Buildkite’s artifact storage, when it runs buildkite-agent artifact upload <files>.

The command starts a multi-part upload and started failing with messages such as:

2025-04-04 18:49:54 WARN   unsuccessful status 501 Not Implemented: <?xml version="1.0" encoding="UTF-8"?>
<Error><Code>NotImplemented</Code><Message>A header you provided implies functionality that is not implemented</Message><Header>Content-Range</Header><RequestId>[...]</RequestId><HostId>[...]</HostId></Error> (Attempt 1/10 Retrying in 5s)

We’ve seen this issue repeat twice last Friday from different CI agents, but haven’t tried it running the same builds again (as the rest of the job was successful).
Still, I’d appreciate some guidance or ideas on what to do if this issue persists, if this is a known issue, etc.

Thanks in advance,
Ian

Hi @iangmaia Welcome to the community!
Please can you share the steps you used for that build. Also, has it ever worked during the artifact upload phase and if it did previously, can you let me know if any new configurational changes were made.

Hi, Michael!

Our pipeline is as simple as:

steps:
  - label: Build and Upload to TestFlight
    command: .buildkite/build_cmd.sh
    artifact_paths:
      - my_ip_file.ipa
      - '*.dSYM.zip'

One major recent change was upgrading the CI machine to use the Buildkite Agent v3.95.1 – I believe it didn’t use multi-part upload before.

Hi @iangmaia can you try using this simple test and see if you are able to get the upload working

steps:
 - label: "step 1"
   commands:
      - "mkdir file"
      - "touch file/text.txt"
      - "buildkite-agent artifact upload file/text.txt"

Hi @Micheal,
The upload in general does seem to work for smaller files, we have things like test reports being uploaded correctly.

Now we’ve tried to use the env var BUILDKITE_NO_MULTIPART_ARTIFACT_UPLOAD to prevent the multipart upload. The artifacts upload then worked fine for the .ipa / .DSYM.zip files I mentioned above, so perhaps there’s indeed an issue with the multipart upload.

Hi @iangmaia glad this now works for you. I believe the multipart upload is on by default on at least agent version v3.84.0 and above.

It does work, but doesn’t it mean that perhaps there is a bug in the default option?

Please can you reach out to support@buildkite.com with links to the jobs so we can take a closer look at this for you

1 Like