mirror of
https://github.com/rudrankriyam/App-Store-Connect-CLI.git
synced 2026-04-25 07:35:48 +03:00
[GH-ISSUE #771] Upload fails on large IPAs: default upload timeout too low + misleading error hint #210
Labels
No labels
bug
bug
documentation
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/App-Store-Connect-CLI#210
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @mithileshchellappan on GitHub (Feb 25, 2026).
Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/771
Problem
Uploading large IPAs (~120MB) via
asc builds uploadorasc publish testflightfails withcontext deadline exceededon individual chunk PUT requests. The same file uploads successfully viaxcrun altool(Apple Transporter) at 8.7MB/s on the same network.Setting
ASC_TIMEOUT=300sdoes not help.Root Cause
The default
ASC_UPLOAD_TIMEOUT(60s) is shared across all chunk uploads, not per-chunk.The upload flow:
builds_commands.go:285— createsuploadCtxviaContextWithUploadTimeout(ctx)→context.WithTimeout(ctx, 60s)upload.go:118— wraps this context withcontext.WithCancel(ctx), inheriting the 60s deadlineupload.go:198— each chunk PUT request uses this same context:http.NewRequestWithContext(ctx, ...)For a 120MB IPA split into ~22 chunks uploaded sequentially (default concurrency=1), later chunks hit the shared 60s deadline even though individual chunks only take a few seconds each.
Two Issues
1. Default upload timeout is too low for large files
DefaultUploadTimeoutis 60 seconds (client_core.go:27). For 120MB at typical upload speeds (5-15MB/s), all chunks need ~10-25 seconds total, but with S3 latency overhead per chunk, it easily exceeds 60s.A workaround exists (
ASC_UPLOAD_TIMEOUT=300s) but users won't discover it because of issue #2.2. Error hint references wrong env var
The error message says:
But
ASC_TIMEOUTonly affects API calls, not uploads. The correct env var isASC_UPLOAD_TIMEOUT. Users will setASC_TIMEOUT=300s, see no improvement, and assumeasccan't handle their file.Suggested Fixes
ASC_UPLOAD_TIMEOUTinstead ofASC_TIMEOUTDefaultUploadTimeout— 300s or scale based on file size (e.g.60s + fileSize/5MB * 2s) would cover most cases without requiring env var configurationEnvironment