The upload loop used IFS=$'\t', but the job steps run under /bin/sh, which is dash in the builder image. dash does not expand $'\t', so IFS became the characters $, \ and t and every path was split on "t": "artifacts/srfplay_1.2.0.9.zip" reached curl as "s/srfplay_...", which failed with exit 26 after the release had already been created. This broke both the v1.2.0 release and the nightly. cut -f3 is plain POSIX. Checked by running the upload and manifest steps under the builder image's dash with curl stubbed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>