[BUG] HTTP 414 when downloading assets of large public share #1227

Closed
opened 2026-02-05 00:56:23 +03:00 by OVERLORD · 1 comment
Owner

Originally created by @zsolt-donca on GitHub (Aug 14, 2023).

Originally assigned to: @jrasm91 on GitHub.

The bug

I created a Public Share with more than 200 photos, and the "Download" button fails, and the network tab shows a request with HTTP 414 error - Request URI Too Large.

I investigated this issue, and found that the web application includes a UUID for each image in the public share, like this:

GET https://my-hostname.com/api/asset/download?assetIds=<uuid1>&assetIds=<uuid2>&assetIds=<uuid3>&assetIds=...

I worked around this issue by setting large values for the request path in nginx (large_client_header_buffers 8 32k;), but I had to do that both in immich's nginx instance (immich_proxy), and also in my own nginx reverse proxy. Also, any limit set like this can be easily surpassed by just creating a larger public share. A better approach would be if the app used a POST API that accepted the asset ids in its body.

The OS that Immich Server is running on

Arch

Version of Immich Server

1.72.2

Version of Immich Mobile App

1.72.2 build.95

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

default

Your .env content

default

Reproduction steps

1. Create a shared album with over 200 photos in it
2. Open the shared album
3. Hit the "Download" button that's supposed to download a .zip file with all the photos shared

Additional information

No response

Originally created by @zsolt-donca on GitHub (Aug 14, 2023). Originally assigned to: @jrasm91 on GitHub. ### The bug I created a Public Share with more than 200 photos, and the "Download" button fails, and the network tab shows a request with HTTP 414 error - Request URI Too Large. I investigated this issue, and found that the web application includes a UUID for each image in the public share, like this: `GET https://my-hostname.com/api/asset/download?assetIds=<uuid1>&assetIds=<uuid2>&assetIds=<uuid3>&assetIds=...` I worked around this issue by setting large values for the request path in nginx (`large_client_header_buffers 8 32k;`), but I had to do that both in immich's nginx instance (`immich_proxy`), and also in my own nginx reverse proxy. Also, any limit set like this can be easily surpassed by just creating a larger public share. A better approach would be if the app used a POST API that accepted the asset ids in its body. ### The OS that Immich Server is running on Arch ### Version of Immich Server 1.72.2 ### Version of Immich Mobile App 1.72.2 build.95 ### Platform with the issue - [ ] Server - [ ] Web - [X] Mobile ### Your docker-compose.yml content ```YAML default ``` ### Your .env content ```Shell default ``` ### Reproduction steps ```bash 1. Create a shared album with over 200 photos in it 2. Open the shared album 3. Hit the "Download" button that's supposed to download a .zip file with all the photos shared ``` ### Additional information _No response_
OVERLORD added the 🗄️server label 2026-02-05 00:56:23 +03:00
Author
Owner

@jrasm91 commented on GitHub (Aug 14, 2023):

Thanks for reporting this. I agree we can transition to a POST request for this request.

@jrasm91 commented on GitHub (Aug 14, 2023): Thanks for reporting this. I agree we can transition to a POST request for this request.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#1227