Running with the -v flag, we see the file downloads fail with error 403.
$ command exercism download -t bash -e say -v --force
========================= BEGIN DumpRequest =========================
GET /v1/solutions/latest?exercise_id=say&track_id=bash HTTP/1.1
Host: api.exercism.org
Authorization: Bearer 69e5*****************************e68
Content-Type: application/json
User-Agent: github.com/exercism/cli v3.5.8 (linux/amd64)
========================= END DumpRequest =========================
========================= BEGIN DumpResponse =========================
HTTP/2.0 200 OK
...
========================= END DumpResponse =========================
========================= BEGIN DumpRequest =========================
GET /api/v1/solutions/3b3a19ab661844a8b628b1305aabca16/files/.exercism/config.json HTTP/1.1
Host: exercism.org
Authorization: Bearer 69e5*****************************e68
Content-Type: application/json
User-Agent: github.com/exercism/cli v3.5.8 (linux/amd64)
========================= END DumpRequest =========================
========================= BEGIN DumpResponse =========================
HTTP/2.0 403 Forbidden
Accept-Ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
Cf-Mitigated: challenge
Cf-Ray: a26e2903cd40a220-YYZ
Content-Security-Policy: default-src 'none'; script-src 'nonce-EFvb9ot3wF4uaxhBFjNt01' 'unsafe-eval' https://challenges.cloudflare.com; script-src-attr 'none'; style-src 'unsafe-inline'; img-src 'self' https://challenges.cloudflare.com; connect-src 'self' https://challenges.cloudflare.com; frame-src 'self' https://challenges.cloudflare.com blob:; child-src 'self' https://challenges.cloudflare.com blob:; worker-src blob:; form-action http: https:; base-uri 'self'
Content-Type: text/html; charset=UTF-8
Critical-Ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
Date: Thu, 06 Aug 2026 12:49:12 GMT
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Origin-Agent-Cluster: ?1
Permissions-Policy: accelerometer=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=(),xr-spatial-tracking=*
Referrer-Policy: same-origin
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=HA%2FGZD%2BRpjNDQlfgPWpbBiTAyDCa3ktnnpFW5G2ghVyJoK623J4sD52rrLsPXdkd7DnC3FeobgxfIKDUzknBNx9YHHV4jICVd%2FCVEnr4ScM8N0s%2FGuL635QhNFqUJw%3D%3D"}]}
Server: cloudflare
Server-Timing: chlray;desc="a26e2903cd40a220"
Vary: accept-encoding
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
========================= END DumpResponse =========================
and the same for every other file that’s supposed to be downloaded