Git LFS Push of large files results in a failure with i/o timeout
Platform Notice: Data Center Only - This article only applies to Atlassian apps on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
When pushing large objects with Git LFS, the push fails with an i/o timeout error. This article applies when:
You are using Git LFS (Large File Storage) to push large binary files
The push fails with the specific message:
read tcp X.X.X.X:port->X.X.X.X:443: i/o timeoutThe push succeeds for smaller files but fails for files larger than ~1-2 GB
If the timeout occurs on regular repository (non-LFS) git push operations, this is a different issue, contact Atlassian Support with the git push error output.
Environment
Bitbucket Server & Data Center
Git LFS
Diagnosis
The git client displays the following:
~ username > git push
Uploading LFS objects: 0% (0/1), 2 GB | 104 MB/s, done.
LFS: Put "https://example.com/rest/git-lfs/storage/EXAMPLE/example-repo/d1786cec9c0d23b42e088b57b425f9f9fcfcad53": read tcp 192.168.0.1:1046->192.168.1.1:443: i/o timeout
error: failed to push some refs to 'https://example.com/rest/git-lfs/storage/EXAMPLE/example-repo.git'~ username >The key part of the message above is: read tcp 192.168.0.1:1046->192.168.1.1:443: i/o timeout
Cause
LFS is timing out waiting for the next TCP read or write. This is generally seen when pushing larger objects or a large commit, containing multiple large objects.
Solution
To resolve this, the user will need to increase the lfs.activitytimeout value for their git client. Depending on the version of your client, recent versions have a default value of 30 seconds. In the below command, we will increase to 60 seconds.
git config lfs.activitytimeout 60Choosing the right timeout value:
The default
lfs.activitytimeoutin recent Git LFS versions is 30 seconds.For files up to 5 GB on a fast network (100 Mbps+): try 60 seconds first.
For files larger than 5 GB or on slower networks: try 120–300 seconds.
For very large files (10 GB+) or slow WAN links: try 600 seconds and increase further if needed.
To apply the setting: git config lfs.activitytimeout <seconds>. To apply globally for all repositories: git config --global lfs.activitytimeout <seconds>
Verification
Re-run the failing push:
git pushWatch the LFS upload progress — it should now complete without the i/o timeout message.
If it still times out, double the timeout value and retry.
Check your current timeout setting:
git config lfs.activitytimeout
Resource: Git LFS config manual
Was this helpful?