I
Immich•3mo ago
Khazaari

Large files fail to upload even over LAN

Hello, I have an immich server running on a windows machine through docker. I have a cloudflare domain routing to an nginx proxy manager acting as a reverse proxy to my immich server. This setup has been working great except that it is consistently failing to upload a 2.4GB .mp4 file. What I have tried - Disabling cloudflare proxy. - Disabling reverse proxy request body size limit (this seemed to help). I was able to get the upload to 100% but it never completes.
proxy_request_buffering off;
client_max_body_size 0;
proxy_request_buffering off;
client_max_body_size 0;
- Connecting via LAN using the mobile app's "Automatic URL switching" feature. This seemed to slow down the connection, and the request failed every time at around 1gb. Relevant immich server logs This error seems to occur sometimes on the server while attempting this upload.
[Nest] 19 - 06/11/2025, 7:00:35 AM WARN [Api:FileUploadInterceptor] Request error while uploading file, cleaning up
[Nest] 19 - 06/11/2025, 7:00:35 AM WARN [Api:FileUploadInterceptor] Error: aborted
at abortIncoming (node:_http_server:809:17)
at socketOnClose (node:_http_server:803:3)
at Socket.emit (node:events:530:35)
at TCP.<anonymous> (node:net:351:12)
at TCP.callbackTrampoline (node:internal/async_hooks:130:17) {
code: 'ECONNRESET'
}
[Nest] 19 - 06/11/2025, 7:00:35 AM WARN [Api:FileUploadInterceptor] Request error while uploading file, cleaning up
[Nest] 19 - 06/11/2025, 7:00:35 AM WARN [Api:FileUploadInterceptor] Error: aborted
at abortIncoming (node:_http_server:809:17)
at socketOnClose (node:_http_server:803:3)
at Socket.emit (node:events:530:35)
at TCP.<anonymous> (node:net:351:12)
at TCP.callbackTrampoline (node:internal/async_hooks:130:17) {
code: 'ECONNRESET'
}
61 Replies
Immich
Immich•3mo ago
:wave: Hey @Khazaari, Thanks for reaching out to us. Please carefully read this message and follow the recommended actions. This will help us be more effective in our support effort and leave more time for building Immich :immich:. References - Container Logs: docker compose logs docs - Container Status: docker ps -a docs - Reverse Proxy: https://immich.app/docs/administration/reverse-proxy - Code Formatting https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline#h_01GY0DAKGXDEHE263BCAYEGFJA Checklist I have... 1. :blue_square: verified I'm on the latest release(note that mobile app releases may take some time). 2. :blue_square: read applicable release notes. 3. :ballot_box_with_check: reviewed the FAQs for known issues. 4. :blue_square: reviewed Github for known issues. 5. :ballot_box_with_check: tried accessing Immich via local ip (without a custom reverse proxy). 6. :blue_square: uploaded the relevant information (see below). 7. :blue_square: tried an incognito window, disabled extensions, cleared mobile app cache, logged out and back in, different browsers, etc. as applicable (an item can be marked as "complete" by reacting with the appropriate number) Information In order to be able to effectively help you, we need you to provide clear information to show what the problem is. The exact details needed vary per case, but here is a list of things to consider: - Your docker-compose.yml and .env files. - Logs from all the containers and their status (see above). - All the troubleshooting steps you've tried so far. - Any recent changes you've made to Immich or your system. - Details about your system (both software/OS and hardware). - Details about your storage (filesystems, type of disks, output of commands like fdisk -l and df -h). - The version of the Immich server, mobile app, and other relevant pieces. - Any other information that you think might be relevant. Please paste files and logs with proper code formatting, and especially avoid blurry screenshots. Without the right information we can't work out what the problem is. Help us help you ;) If this ticket can be closed you can use the /close command, and re-open it later if needed.
Mraedis
Mraedis•3mo ago
"even on LAN" but still using CLoudflare? the next question would be: did you try direct IP?
Khazaari
KhazaariOP•3mo ago
even on LAN meaning I've connected to the server directly at http://192.168.0.xxx:2283
Mraedis
Mraedis•3mo ago
Well that makes no sense šŸ‘€ I'm assuming you did the upload with the file open? er the app open
Khazaari
KhazaariOP•3mo ago
yeah. I noticed that when I close the app the connection closes, so I've left the app open Docker Compose in case this helps
name: immich

services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- '2283:2283'
depends_on:
- redis
- database
restart: always
healthcheck:
disable: false

immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
volumes:
- model-cache:/cache
env_file:
- .env
restart: always
healthcheck:
disable: false

redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-bookworm@sha256:a19bebed6a91bd5e6e2106fef015f9602a3392deeb7c9ed47548378dcee3dfc2
healthcheck:
test: redis-cli ping || exit 1
restart: always

database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes:
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
restart: always
name: immich

services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- '2283:2283'
depends_on:
- redis
- database
restart: always
healthcheck:
disable: false

immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
volumes:
- model-cache:/cache
env_file:
- .env
restart: always
healthcheck:
disable: false

redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-bookworm@sha256:a19bebed6a91bd5e6e2106fef015f9602a3392deeb7c9ed47548378dcee3dfc2
healthcheck:
test: redis-cli ping || exit 1
restart: always

database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes:
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
restart: always
Mraedis
Mraedis•3mo ago
Basically a standard compose Nothing funky going on in terms of free space on your server?
Khazaari
KhazaariOP•3mo ago
I don't think so. I have 1tb left on my ssd and docker says it's available to it.
Khazaari
KhazaariOP•3mo ago
No description
Mraedis
Mraedis•3mo ago
No low RAM amount or something? Shouldn't be much of an issue uploading but you never know Ah, maybe it's timing out How long does the upload take?
Khazaari
KhazaariOP•3mo ago
It goes at between 8mb/s and 25mb/s so 2-5 minutes or so i'll try again and time when it stops making progress docker says 2.3gb/14.87gb and my system has 32gb
Mraedis
Mraedis•3mo ago
5 minutes is one of the more common default timeouts
Khazaari
KhazaariOP•3mo ago
stalled out at 2m 20s
Mraedis
Mraedis•3mo ago
dang
Khazaari
KhazaariOP•3mo ago
1.51gb/2.36
Mraedis
Mraedis•3mo ago
Could you df -hT and lsblk for me on your server?
Khazaari
KhazaariOP•3mo ago
No description
Mraedis
Mraedis•3mo ago
Not even a tmp mount in sight, there goes that idea
Khazaari
KhazaariOP•3mo ago
uhh.. I just tried to perform the backup again and it was almost instantly cancelling out.. so I went to the app on another device and the file is there? I never did see it complete.
Mraedis
Mraedis•3mo ago
Yay?
Khazaari
KhazaariOP•3mo ago
yay? I'd like to have changed something that made it work because that might give me some confidence in its reliability in the future haha
Questionario
Questionario•3mo ago
very funky that uploading directly to your immich host is slower than over cloudflare though... is your phone and the immich host in the same subnet if you upload via local lan?
Khazaari
KhazaariOP•3mo ago
I'm not really sure how to determine that.
Questionario
Questionario•3mo ago
what is the IP of your phone and what is the IP of your immich install?
Khazaari
KhazaariOP•3mo ago
I'm not sure how to determine the local ip of my android phone.. the IP of the server is 192.168.0.192
Mraedis
Mraedis•3mo ago
It's in your wifi settings for your network
Khazaari
KhazaariOP•3mo ago
ah I found it. The phone is 192.168.0.111
Questionario
Questionario•3mo ago
yea, that looks to be the same network... only explanation i would have is a bad / faulty WLAN setup you could test that if you had like a guest WLAN on the same access point which would not use your local lan ip of immich and connect via cloudflare... but that would really be the only explanation as to how this could be slower
Khazaari
KhazaariOP•3mo ago
i do have 2 wireless networks
Questionario
Questionario•3mo ago
bad/faulty might be the wrong term... a weak connection could still cause slower speeds than e.g. a 5G connection
Khazaari
KhazaariOP•3mo ago
hm yeah the two wireless networks have the same subnet so I don't think that's really what you were describing here.
Questionario
Questionario•3mo ago
well, you could temporarily remove the settings for your local network in your immich app and test if that is still really faster than going via your local LAN IP that would at least remove the weird idea of it being slower on local lan than via cloudflare... and if it would still be the case that its slower only via LAN... yea then I need to question reality for a bit :[
Khazaari
KhazaariOP•3mo ago
All the photos on my phone are transferred now.. What's the correct way to delete some of the files on the server such that I can re-upload them from my phone? I tried deleting one file but it didn't re-upload. I assume it was marked as deleted and won't upload again..
Questionario
Questionario•3mo ago
just record a new video which you can delete on both ends afterwards
Khazaari
KhazaariOP•3mo ago
Well, now it's behaving how I would expect.. consistent 30mbps over http://192.168.0.192:2283, and 8ish mbps over cloudflare. Its very strange because that other video was performing at about 6mbps over http://192.168.0.192:2283 for the first 1gb, then 25mbps afterward, while cloudflare seemed to be consistent at around 20-25mbps. the two videos I tested with are also smaller (~400mb) because i didn't really want to record for 10 minutes Thanks for all the help @Mraedis and @Questionario ! Sorry for the weird inconsistent issue.
Mraedis
Mraedis•3mo ago
Just record in 4k/120fps, gigabytes in no time šŸ˜›
Questionario
Questionario•3mo ago
some android phones have external microSD storage where some files might end up, those can be slow under certain circumstances I tried, unfortunately I dont have enough space to record a 2h tennis match with those settings 😢
Khazaari
KhazaariOP•3mo ago
my phone was doing 4k/60 (probably with some compression), but I suppose it can do 8k if I enable it
Questionario
Questionario•3mo ago
scratch that.. you said the same file was slower on local lan....
Mraedis
Mraedis•3mo ago
about 10-12MB/second for 4k/60 so that's really about 2 minutes of recording per 1 GB (not that any of this matters šŸ˜› )
Questionario
Questionario•3mo ago
either way, good its sorted now! šŸ™‚ PS: i can upload to immich with about ~140Mbit/s while the upload speed to the server (the one immich is running on) is over 650Mbit/s on WLAN.
Khazaari
KhazaariOP•3mo ago
I was also assuming that the automatic url switching was working. And I'm not sure it was.. the "current server address" never changes.. only changes when I logout and log back in at a different address.
Questionario
Questionario•3mo ago
then maybe it wasnt configured correctly or permissions are not set correctly? šŸ¤·ā€ā™‚ļø
Khazaari
KhazaariOP•3mo ago
How?? I want that. I'm not really sure what is the bottleneck.
Mraedis
Mraedis•3mo ago
your phone/server network is the bottleneck
Questionario
Questionario•3mo ago
yea, either of those three it is šŸ˜„
Khazaari
KhazaariOP•3mo ago
That makes sense. I do have a generic tp-link router. My wifi is decently fast though, 280mbps
Questionario
Questionario•3mo ago
you can use a speedtest to check the speed of your wlan, either a generic speeedtest app like speedtest.net, or a proprietary one that your router might have or you self-host something like librespeed
Mraedis
Mraedis•3mo ago
The bottom line is, it's not immich that is the bottleneck here šŸ˜›
Questionario
Questionario•3mo ago
280mbps measured speed or max speed? šŸ˜›
Khazaari
KhazaariOP•3mo ago
Measured speed. It's much faster to my pc over ethernet.
Questionario
Questionario•3mo ago
my wifi gives me ~900+ Mbit/s which is limited because the access point "only" has a 1Gbit uplink my server and network equipment further limits this down to ~650+ Mbit/s and even though my server could receive with 650 Mbit/s, immich upload speed is ~140 Mbit/s so there is losses but its good enough for me oh and that is without cloudflare but with a reverse proxy measured how?
Khazaari
KhazaariOP•3mo ago
Speedtest.net
Questionario
Questionario•3mo ago
so you get less than a third of what I get on my WiFi
Khazaari
KhazaariOP•3mo ago
Actually it was the generic Google speed test, speedtest.net gives 300
Questionario
Questionario•3mo ago
assuming your internet connection allows for higher speeds
Khazaari
KhazaariOP•3mo ago
I think my internet plan is actually 300mbps IIRC But i wouldn't think that would limit LAN network speed.
Questionario
Questionario•3mo ago
no, but then you cannot test above 300mbps
Khazaari
KhazaariOP•3mo ago
Right
Questionario
Questionario•3mo ago
either way it is in your environment if you get low speeds I just wanted to give you an idea of what a setup "could" give you for speeds
Khazaari
KhazaariOP•3mo ago
That is useful info.
Immich
Immich•3mo ago
This thread has been closed. To re-open, use the button below.

Did you find this page helpful?