Skip to content

Error on DOCX to PDF conversion #4

@Beulke-Dono

Description

@Beulke-Dono

Hello! I am facing this error:

[2025-11-12 15:20:46] production.ERROR: Failed to convert document to PDF: Failed to convert document to PDF: Unsupported MIME type for extension:  
{"userId":"ada321ba-ac56-424c-84e1-13ff8bc2c1cb","exception":
"[object] (Mateffy\\Magic\\Exceptions\\ArtifactGenerationFailed(code: 0): Failed to convert document to PDF: Failed to convert document to PDF: Unsupported MIME type for extension:  at 
/app/vendor/mateffy/llm-magic/src/Magic/Extraction/Artifacts/DiskArtifact.php:308)

I checked the document and it´s normal.

Context Info:

  • OS Host: Windows
  • Image: mateffy/data-wizard:latest
  • LibreOffice: 7.4.7.2 40(Build:2) (alredy on the image)
  • Docker Compose

Possible Cause

I identified that LibreOffice operate as root and fail as www-data

root - WORKS ✓

root@container:/app# libreoffice --headless --convert-to pdf --outdir /tmp /path/to/file.docx convert /path/to/file.docx -> /tmp/file.pdf using writer_pdf_Export

www-data - FAIL ✗

root@container:/app# su -s /bin/bash www-data -c "libreoffice --headless --convert-to pdf --outdir /tmp /path/to/file.docx" javaldx failed! Warning: failed to read path from javaldx LibreOffice 7.4 - Fatal Error: The application cannot be started. LibreOffice user installation could not be processed due to missing access rights. Please make sure that you have sufficient access rights for the following location and restart LibreOffice: /config/libreoffice/4

I found this variables here:

XDG_CONFIG_HOME=/config
XDG_DATA_HOME=/data
HOME=/root

The problem is: LibreOffice try to use /config/libreoffice/4 (by XDG_CONFIG_HOME), but this directory belongs to root:root and www-data do not have write permissions.

ls -la /config

root@container:/app
drwxr-xr-x 6 root root 4096 Nov 12 16:05 .
drwxr-xr-x 2 root root 4096 Nov 12 15:59 caddy
drwxr-xr-x 2 root root 4096 Nov 12 15:59 composer
drwxr-xr-x 3 root root 4096 Nov 12 16:05 libreoffice

I Tried

  • Create /var/www/.config with permission for www-data
RUN mkdir -p /var/www/.config /var/www/.cache && \
    chown -R www-data:www-data /var/www

But LibreOffice ignores it and use /config.

  • Give permission to /config/libreoffice
RUN mkdir -p /config/libreoffice && \
    chown -R www-data:www-data /config/libreoffice

But fail: /config/libreoffice do not exists in the base image.

  • Overwrite XDG_CONFIG_HOME
su -s /bin/bash www-data -c "XDG_CONFIG_HOME=/var/www/.config libreoffice --headless --convert-to pdf ..."

But the primal error remains.

  • Change supervisord to runs with www-data
RUN sed -i 's/\[supervisord\]/[supervisord]\nuser=www-data/' /etc/supervisor/conf.d/*.conf

docker-compose.yml Configuration:

services:
  data-wizard:
    container_name: data-wizard
    image: mateffy/data-wizard:latest
    ports:
      - "9090:80"
      - "4430:443"
      - "4430:443/udp"
    volumes:
      - data_wizard_storage:/app/storage
      - data_wizard_sqlite_data:/app/database
      - data_wizard_caddy_data:/data
      - data_wizard_caddy_config:/config
    environment:
      - APP_KEY=${APP_KEY}
    restart: unless-stopped

Be Aware: The Problem Can Be Me

Yes. I do not have much experience with Docker, so I may have made mistakes somewhere. If you identify anything like that, please let me know.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions