-
-
Notifications
You must be signed in to change notification settings - Fork 364
Description
Discussed in #3852
Originally posted by hampoelz December 4, 2025
Lychee version
v6.10.2
Did you check the latest Lychee version?
No, I am not using the latest version
(I didn't find anything related to this bug in the changelog.)
Which PHP version are you using?
PHP 8.4
Detailed description of the problem
There seem to be issues with downloading albums that have names containing periods. In such cases, the name of the archive (or if it is a sub-album, the name of the folder) is truncated.
I've also noticed that albums larger than ~3 GB stop downloading after about 2.5 to 3 GB and become corrupted. (You can test it yourself by going to the host on the screenshots above and trying to download the "Austria" album, or all albums at once. The "Austria" album has a size of ~3.45 GB. All albums together should have a size of ~15-20 GB.) Downloading smaller albums works perfectly.
❯ ls -lh Austria.zip
-rw-r--r--@ 1 hampoelz staff 2.5G Dec 4 14:08 Austria.zip
❯ unzip Austria.zip
Archive: Austria.zip
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of Austria.zip or
Austria.zip.zip, and cannot find Austria.zip.ZIP, period.
[error] 98#98: *53740 FastCGI sent in stderr: "PHP message: PHP Fatal error: Allowed memory size of 268435456 bytes exhausted" while reading upstream, [...]
[error] 98#98: *53740 FastCGI sent in stderr: "(tried to allocate 16777248 bytes) in /var/www/html/Lychee/vendor/maennchen/zipstream-php/src/File.php on line 334" while reading upstream, [...]
Edit (10-12-2025): Added error messages from the server log
Steps to reproduce the issue
No response
Diagnostics [REQUIRED]
Diagnostics
Self-diagnosis:
--------------------
Info: Hash: 0f2b93996ca8a91e—bbc52c3af9921105
2353 files and 13363 vendor files
Info: Full directory permission check is disabled
Info:
--------------------
Lychee SE Version (tag): v6.10.2 (05d6463) -- Up to date (15 hours ago).
DB Version: 6.10.2
Docker: lycheeorg
composer install: --no-dev
APP_ENV: production
APP_DEBUG: false
APP_URL: set
APP_DIR: default
LOG_VIEWER_ENABLED: true
System: Linux
PHP Version: 8.4.14
PHP User agent: Lychee/6 (https://lycheeorg.dev/)
Timezone: Europe/Vienna
Max uploaded file size: 100M
Max post size: 100M
Chunk size: 25.60 MB
Max execution time: 3600
MySQL Version: 11.8.5-MariaDB-ubu2404
exec() Available: yes
Imagick Available: 1
Imagick Enabled: 1
Imagick Version: 1691
GD Version: 2.3.3
Number of foreign key: 27 found.
Config:
--------------------
version: 061002
check_for_updates: 0
sorting_photos_col: title
sorting_photos_order: DESC
sorting_albums_col: title
sorting_albums_order: ASC
imagick: 1
skip_duplicates: 1
small_max_width: 0
small_max_height: 360
medium_max_width: 1920
medium_max_height: 1080
lang: en
image_overlay_type: none
default_license: none
compression_quality: 85
grants_full_photo_access: 1
delete_imported: 0
mod_frame_enabled: 1
mod_frame_refresh: 30
thumb_2x: 0
small_2x: 0
medium_2x: 0
landing_page_enable: 0
search_public: 1
hide_version_number: 0
recent_age: 14
grants_download: 1
photos_wraparound: 0
map_display: 1
zip64: 1
map_display_public: 1
map_provider: OpenStreetMap.org
map_include_subalbums: 1
update_check_every_days: 3
has_exiftool: 1
share_button_visible: 1
import_via_symlink: 0
has_ffmpeg: 1
location_decoding: 1
location_decoding_timeout: 30
location_show: 1
location_show_public: 1
rss_enable: 0
rss_recent_days: 7
rss_max_items: 100
prefer_available_xmp_metadata: 0
editor_enabled: 1
lossless_optimization: 0
local_takestamp_video_formats: .avi|.mov
log_max_num_line: 1000
unlock_password_photos_with_url_param: 0
nsfw_visible: 1
nsfw_blur: 1
nsfw_warning: 1
nsfw_warning_admin: 1
nsfw_banner_override:
map_display_direction: 1
album_subtitle_type: description
upload_processing_limit: 4
new_photos_notification: 0
zip_deflate_level: 6
default_album_protection: 3
album_decoration: all
album_decoration_orientation: row
allow_username_change: 0
auto_fix_orientation: 1
random_album_id: starred
use_last_modified_date_when_no_exif_date: 0
layout: justified
date_format_photo_thumb: M j, Y, g:i:s A e
date_format_photo_overlay: M j, Y, g:i:s A e
date_format_sidebar_uploaded: M j, Y, g:i:s A e
date_format_sidebar_taken_at: M j, Y, g:i:s A e
date_format_hero_min_max: F Y
date_format_hero_created_at: M j, Y, g:i:s A T
date_format_album_thumb: M Y
upload_chunk_size: 0
nsfw_banner_blur_backdrop: 0
search_pagination_limit: 300
search_minimum_length_required: 4
photo_layout_justified_row_height: 320
photo_layout_masonry_column_width: 300
photo_layout_grid_column_width: 250
photo_layout_square_column_width: 200
photo_layout_gap: 12
display_thumb_album_overlay: always
display_thumb_photo_overlay: hover
default_album_thumb_aspect_ratio: 3/2
use_album_compact_header: 1
back_button_enabled: 0
back_button_text: Return to Home
SA_random_thumbs: 0
login_required: 0
enable_unsorted: 1
enable_starred: 1
enable_recent: 1
enable_on_this_day: 0
login_required_root_only: 0
dark_mode_enabled: 1
low_quality_image_placeholder: 1
show_keybinding_help_popup: 0
show_keybinding_help_button: 1
disable_se_call_for_actions: 0
enable_se_preview: 0
slideshow_timeout: 5
keep_original_untouched: 0
timeline_photos_enabled: 1
timeline_photos_public: 1
timeline_photos_granularity: month
timeline_photos_order: taken_at
timeline_photos_layout: justified
timeline_photos_pagination_limit: 200
timeline_albums_enabled: 1
timeline_albums_public: 1
timeline_albums_granularity: year
timeline_left_border_enabled: 1
timeline_photo_date_format_year: Y
timeline_photo_date_format_month: M Y
timeline_photo_date_format_day: j M Y
timeline_photo_date_format_hour: g:i
timeline_album_date_format_year: Y
timeline_album_date_format_month: M Y
timeline_album_date_format_day: j M
hide_nsfw_in_smart_albums: 1
hide_nsfw_in_frame: 1
hide_nsfw_in_map: 1
hide_nsfw_in_search: 1
search_photos_layout: justified
hide_nsfw_in_rss: 1
hide_nsfw_in_timeline: 1
number_albums_per_row_mobile: 3
cache_enabled: 1
cache_ttl: 86400
low_number_of_shoots_per_day: 10
medium_number_of_shoots_per_day: 50
high_number_of_shoots_per_day: 100
maintenance_processing_limit: 5000
disable_recursive_permission_check: 1
exif_disabled_for_all: 0
file_name_hidden: 0
default_old_settings: 0
default_expert_settings: 0
default_all_settings: 0
client_side_favourite_enabled: 1
disable_thumb_download: 1
disable_thumb2x_download: 1
disable_small_download: 1
disable_small2x_download: 1
disable_medium_download: 1
disable_medium2x_download: 1
temporary_image_link_enabled: 0
temporary_image_link_when_logged_in: 0
temporary_image_link_when_admin: 0
temporary_image_link_life_in_seconds: 86400
secure_image_link_enabled: 0
SA_override_visibility: 0
TA_override_visibility: 0
enable_colour_extractions: 0
colour_extraction_driver: farzai
home_page_default: gallery
timeline_page_enabled: 1
timeline_quick_access_date_format_year: Y
timeline_quick_access_date_format_month: M
timeline_quick_access_date_format_day: j M
timeline_quick_access_date_format_hour: h M, g:i
flow_enabled: 0
flow_public: 1
flow_base:
flow_max_items: 10
flow_strategy: auto
flow_include_sub_albums: 1
flow_include_photos_from_children: 0
flow_open_album_on_click: 0
flow_display_open_album_button: 1
flow_highlight_first_picture: 1
flow_min_max_enabled: 1
flow_display_statistics: 1
flow_compact_mode_enabled: 1
flow_image_header_enabled: 1
flow_image_header_cover: fit
flow_image_header_height: 24
flow_carousel_enabled: 1
flow_carousel_height: 6
date_format_flow_published: M j, Y, g:i:s A e
date_format_flow_min_max: F Y
flow_blur_nsfw_enabled: 1
hide_nsfw_in_flow: 1
skip_duplicates_early: 1
sync_delete_missing_photos: 0
sync_delete_missing_albums: 0
sync_dry_run: 1
gallery_header_enabled: 0
gallery_header_logged_in_enabled: 0
gallery_header:
gallery_header_bar_transparent: 1
gallery_header_bar_gradient: 1
import_via_url_forbidden_localhost: 1
import_via_url_forbidden_local_ip: 1
import_via_url_require_https: 1
import_via_url_forbidden_ports: 1
details_links_enabled: 0
details_links_public: 0
is_scroll_to_navigate_photos_enabled: 0
is_swipe_vertically_to_go_back_enabled: 1
photo_thumb_tags_enabled: 0
hide_nsfw_in_tag_albums: 1
hide_nsfw_in_tag_listing: 1
sorting_pinned_albums_col: title
sorting_pinned_albums_order: ASC
copyright_text:
watermark_enabled: 0
watermark_photo_id:
watermark_public: 1
watermark_logged_in_users_enabled: 0
renamer_enabled: 0
renamer_enforced: 0
renamer_enforced_before: 0
renamer_enforced_after: 0
renamer_photo_title_enabled: 1
renamer_album_title_enabled: 1
extract_zip_on_upload: 1
webshop_currency: EUR
webshop_default_description: No description provided.
webshop_allow_guest_checkout: 1
webshop_terms_url:
webshop_privacy_url:
webshop_default_price_cents: 0
webshop_default_license: personal
webshop_default_size: medium
enable_untagged: 1
photos_pagination_limit: 500
deduplicate_pinned_albums: 0
desktop_dock_full_transparency_enabled: 0
mobile_dock_full_transparency_enabled: 0
Browser & System [REQUIRED]
- Browser: Vivaldi 7.7.3851.58 (Stable channel) (arm64)
- User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36
- System: macOS Version 26.1 (Build 25B78)
Also note that I use Lychee-Docker behind a Caddy reverse proxy.
Please confirm (incomplete submissions will not be addressed)
- I have provided easy and step-by-step instructions to reproduce the bug.
- I understand my bug report will be removed if I haven't met the criteria above.
- I understand that if I am requested to provide more information, I must do so within 14 days or the bug report will be closed.