HEIC preview fails with 512 MiB Imagick limit despite policy.xml override (fixed by newer ImageMagick/libheif)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- docker, php
- Área
- devops, infrastructure
Línea de trabajo
Comienza reproduciendo el fallo con la prueba directa de PHP Imagick e inspecciona la configuración de ImageMagick de la imagen oficial de Nextcloud Docker, incluido /etc/ImageMagick-7/policy.xml. Compara los paquetes de ImageMagick/libheif incluidos con las versiones más recientes que se probaron. Se considera terminado cuando la imagen actualizada genera vistas previas para el archivo HEIC afectado sin el error de 512 MiB.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
TL;DR
Current included Imagick can't decode many larger heic due to bug, package update fixes bug.
Description
HEIC images fail to generate previews in the stock Nextcloud Docker image due to an Imagick memory/security limit at exactly 512 MiB. Increasing ImageMagick policy limits and Nextcloud preview limits does not resolve the issue. Upgrading the ImageMagick/libheif stack inside the container immediately fixes the problem.
Steps to reproduce
- Deploy official Nextcloud Docker image
- Upload HEIC image (modern phone photo, high resolution)
- Trigger preview generation (web UI or background jobs)
Actual behavior
Preview generation fails with:
ImagickException:` Memory allocation error:
Security limit exceeded: Allocating 599270415 bytes exceeds the security limit of 536870912 bytes
@ error/heic.c/IsHEIFSuccess/141
Expected behavior
- ImageMagick should respect configured policy.xml limits
- HEIC previews should succeed when sufficient memory limits are configured
What was tested
1. Nextcloud config
php 'preview_max_memory' => 1024,
→ No effect
2. ImageMagick policy override
/etc/ImageMagick-7/policy.xml modified:
<policy domain="resource" name="memory" value="1GiB"/>
<policy domain="resource" name="map" value="2GiB"/>
<policy domain="resource" name="disk" value="8GiB"/>
<policy domain="system" name="max-memory-request" value="1GiB"/>
→ Confirmed present inside running container
→ No effect (error still at exactly 536870912 bytes)
3. Direct PHP test (outside Nextcloud)
php -r 'try{
$im=new Imagick();
$im->readImage("/path/to/file.heic");
echo "OK\n";
}catch(Throwable $e){
echo $e->getMessage(),"\n";
}'
Result: Same 536870912-byte security limit error
→ Confirms issue is not Nextcloud-specific
4. Temporary upgrade inside container
Added newer packages (Debian sid):
apt-get update
apt-get install -y -t sid libheif1 libmagickcore-7.q16-10 libmagickwand-7.q16-10
Then reran same PHP test:
OK
→ Same HEIC file loads successfully
Conclusion
- The failure is tied to the ImageMagick/libheif version shipped in the container
- The HEIC decode path appears to ignore or be constrained by a fixed 512 MiB limit in that build
- Policy changes (
max-memory-request, etc.) do not affect this behavior - Upgrading the stack resolves the issue immediately
Environment
Nextcloud Docker image (official)
PHP imagick 3.8.1
ImageMagick 7.1.1-43 (container default)
libheif 1.19.8
Debian-based container
After manual upgrade:
- HEIC decoding works (with minor ABI warning)
Request
- Update ImageMagick/libheif packages in the base image
Notes
This is reproducible via direct PHP Imagick usage (not specific to Nextcloud)
The error is deterministic and always occurs at 512 MiB allocation threshold
Behavior changes immediately with newer ImageMagick/libheif
- Lenguaje dominante
- Shell
- Estrellas
- 7.4k
- Forks
- 1.9k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de nextcloud/docker
-
1. To develop bug feature: cron image
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Drop paragarph about anonymous (unnamed) volumes under Persistent Storage section fo the docsAbiertobug docs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
-
0. Needs triage bug
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Imagick architecture mismatch (x86_64 vs aarch64) on official arm64 image causes Apache segfaultsAbierto0. Needs triage bug
Dificultad 4/5 3-5 días Aptitud para principiantes 50/100
Todos los issues de nextcloud/docker
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
beehive-lab/TornadoVM#1248 ·
Los mantenedores suelen responder en 1 día
-
Dev
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
ankidroid/Anki-Android#22555 ·
Los mantenedores suelen responder en 1 día
-
Add .gitignorePosiblemente ocupada @ajeanmahoney la tomó hoy. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
tesseract-ocr/tesseract#4653 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día