Can't create previews for JPEGs

  • Nextcloud Server version (e.g., 29.x.x):
    • 30.0.4
  • Operating system and version (e.g., Ubuntu 24.04):
    • Debian GNU/Linux 11 (bullseye) aarch64
  • Web server and version (e.g, Apache 2.4.25):
    • Apache/2.4.63-dev (Unix)
  • Reverse proxy and version _(e.g. nginx 1.27.2)
    • N/A
  • PHP version (e.g, 8.3):
    • PHP 8.3.9-dev
  • Is this the first time you’ve seen this error? (Yes / No):
    • No
  • When did this problem seem to first start?
    • Ever since install, persisted for several updates
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • Tarball
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • No

Summary of the issue you are facing:

Nextcloud cannot generate previews for JPEG files. It works fine for PNGs, ODTs, etc, but not for JPEGs. If I convert the file to a PNG, it works fine.

Steps to replicate it (hint: details matter!):

  1. Be me
  2. Upload a JPEG
  3. No preview

Log entries

Running occ preview:generate from the cli produces this:

In Generator.php line 362:

  [OCP\Files\NotFoundException]
  No provider successfully handled the preview generation


Exception trace:
  at /var/www/nextcloud/lib/private/Preview/Generator.php:362
 OC\Preview\Generator->generateProviderPreview() at /var/www/nextcloud/lib/private/Preview/Generator.php:313
 OC\Preview\Generator->getMaxPreview() at /var/www/nextcloud/lib/private/Preview/Generator.php:119
 OC\Preview\Generator->generatePreviews() at /var/www/nextcloud/lib/private/PreviewManager.php:188
 OC\PreviewManager->generatePreviews() at /var/www/nextcloud/core/Command/Preview/Generate.php:92
 OC\Core\Command\Preview\Generate->execute() at /var/www/nextcloud/3rdparty/symfony/console/Command/Command.php:326
 Symfony\Component\Console\Command\Command->run() at /var/www/nextcloud/3rdparty/symfony/console/Application.php:1078
 Symfony\Component\Console\Application->doRunCommand() at /var/www/nextcloud/3rdparty/symfony/console/Application.php:324
 Symfony\Component\Console\Application->doRun() at /var/www/nextcloud/3rdparty/symfony/console/Application.php:175
 Symfony\Component\Console\Application->run() at /var/www/nextcloud/lib/private/Console/Application.php:183
 OC\Console\Application->run() at /var/www/nextcloud/console.php:87
 require_once() at /var/www/nextcloud/occ:11

preview:generate [-s|--size SIZE] [-c|--crop] [-m|--mode MODE] [--] <file>

Nextcloud

https://pastebin.com/fDm4L7sw

Web Browser

N/A

Web server / Reverse Proxy

The output of your Apache/nginx/system log in /var/log/____:

error.log (messages from today):

[Wed Dec 18 01:02:52.465764 2024] [autoindex:error] [pid 517169:tid 546557645184] [client 36.106.167.254:23057] AH01276: Cannot serve directory /var/www/nextcloud/: No matching DirectoryIndex (none) found, and server-generated directory index forbidden by Options directive
[Wed Dec 18 01:02:57.838705 2024] [autoindex:error] [pid 517162:tid 545217552768] [client 112.193.7.90:31465] AH01276: Cannot serve directory /var/www/nextcloud/: No matching DirectoryIndex (none) found, and server-generated directory index forbidden by Options directive
[Wed Dec 18 01:43:41.846427 2024] [core:error] [pid 517081:tid 546425512320] [client 2.56.247.7:46652] AH10244: invalid URI path (/cgi-bin/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/bin/sh)
[Wed Dec 18 01:43:46.634108 2024] [core:error] [pid 517109:tid 546442297728] [client 2.56.247.7:46670] AH10244: invalid URI path (/cgi-bin/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/bin/sh)
[Wed Dec 18 01:45:02.924478 2024] [php:error] [pid 517162:tid 546549252480] [client 2.56.247.7:33662] script '/var/www/html/index.php' not found or unable to stat
[Wed Dec 18 01:45:07.083953 2024] [php:error] [pid 517162:tid 546324865408] [client 2.56.247.7:33662] script '/var/www/html/index.php' not found or unable to stat
[Wed Dec 18 01:45:09.216117 2024] [php:error] [pid 517162:tid 546308080000] [client 2.56.247.7:33662] script '/var/www/html/index.php' not found or unable to stat
[Wed Dec 18 04:53:21.594661 2024] [core:error] [pid 517169:tid 546316472704] [client 47.236.156.253:45830] AH10244: invalid URI path (/cgi-bin/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/bin/sh)
[Wed Dec 18 09:31:58.886891 2024] [core:error] [pid 517169:tid 545259516288] [client 47.84.69.78:60340] AH10244: invalid URI path (/cgi-bin/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/bin/sh)
[Wed Dec 18 10:14:12.385225 2024] [php:error] [pid 517169:tid 545242730880] [client 204.88.157.18:51168] script '/var/www/html/apc.php' not found or unable to stat

journalctl (tailed):

-- Journal begins at Mon 2024-12-09 17:28:56 PST, ends at Wed 2024-12-18 11:17:02 PST. --
Dec 18 11:17:02 raspberrypi mariadbd[700]: 2024-12-18 11:17:02 468125 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'hist_type' at position 9 to have type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB'), found type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB').
Dec 18 11:17:02 raspberrypi mariadbd[700]: 2024-12-18 11:17:02 468125 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'histogram' at position 10 to have type longblob, found type varbinary(255).
Dec 18 11:17:02 raspberrypi mariadbd[700]: 2024-12-18 11:17:02 468125 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'hist_type' at position 9 to have type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB'), found type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB').
Dec 18 11:17:02 raspberrypi mariadbd[700]: 2024-12-18 11:17:02 468125 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'histogram' at position 10 to have type longblob, found type varbinary(255).
Dec 18 11:17:02 raspberrypi mariadbd[700]: 2024-12-18 11:17:02 468125 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'hist_type' at position 9 to have type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB'), found type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB').
Dec 18 11:17:02 raspberrypi mariadbd[700]: 2024-12-18 11:17:02 468125 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'histogram' at position 10 to have type longblob, found type varbinary(255).
Dec 18 11:17:02 raspberrypi mariadbd[700]: 2024-12-18 11:17:02 468125 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'hist_type' at position 9 to have type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB'), found type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB').
Dec 18 11:17:02 raspberrypi mariadbd[700]: 2024-12-18 11:17:02 468125 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'histogram' at position 10 to have type longblob, found type varbinary(255).
Dec 18 11:17:02 raspberrypi mariadbd[700]: 2024-12-18 11:17:02 468125 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'hist_type' at position 9 to have type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB'), found type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB').
Dec 18 11:17:02 raspberrypi mariadbd[700]: 2024-12-18 11:17:02 468125 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'histogram' at position 10 to have type longblob, found type varbinary(255).

Configuration

Nextcloud

{
    "system": {
        "debug": false,
        "bulkupload.enabled": false,
        "log_type": "file",
        "syslog_tag": "Nextcloud",
        "loglevel": 2,
        "memcache.local": "\\OC\\Memcache\\APCu",
        "maintenance_window_start": 8,
        "preview_concurrency_all": 4,
        "preview_concurrency_new": 2,
        "enable_previews": true,
        "preview_max_x": 8192,
        "preview_max_y": 8192,
        "preview_max_filesize_image": 50,
        "preview_max_memory": 1024,
        "enabledPreviewProviders": [
            "OC\\Preview\\HEIC",
            "OC\\Preview\\SVG",
            "OC\\Preview\\BMP",
            "OC\\Preview\\GIF",
            "OC\\Preview\\JPEG",
            "OC\\Preview\\Krita",
            "OC\\Preview\\MarkDown",
            "OC\\Preview\\MP3",
            "OC\\Preview\\OpenDocument",
            "OC\\Preview\\PNG",
            "OC\\Preview\\TXT",
            "OC\\Preview\\XBitmap"
        ],
        "appstoreenabled": true,
        "apps_paths": [
            {
                "path": "\/var\/www\/nextcloud\/apps",
                "url": "\/apps",
                "writable": true
            }
        ],
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "localhost",
            "acalenderserver.ddns.net"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "30.0.4.1",
        "overwrite.cli.url": "https:\/\/acalenderserver.ddns.net\/nextcloud",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "updater.release.channel": "stable",
        "installed": true,
        "htaccess.RewriteBase": "\/nextcloud",
        "theme": "",
        "default_phone_region": "US",
        "mail_smtpmode": "sendmail",
        "mail_sendmailmode": "smtp",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "25",
        "maintenance": false
    }
}

Apps

Enabled:
  - activity: 3.0.0
  - app_api: 4.0.3
  - bruteforcesettings: 3.0.0
  - calendar: 5.0.6
  - circles: 30.0.0
  - cloud_federation_api: 1.13.0
  - comments: 1.20.1
  - contacts: 6.1.1
  - contactsinteraction: 1.11.0
  - dashboard: 7.10.0
  - dav: 1.31.1
  - federatedfilesharing: 1.20.0
  - federation: 1.20.0
  - files: 2.2.0
  - files_downloadlimit: 3.0.0
  - files_pdfviewer: 3.0.0
  - files_reminders: 1.3.0
  - files_sharing: 1.22.0
  - files_trashbin: 1.20.1
  - files_versions: 1.23.0
  - firstrunwizard: 3.0.0
  - logreader: 3.0.0
  - lookup_server_connector: 1.18.0
  - nextcloud_announcements: 2.0.0
  - notifications: 3.0.0
  - oauth2: 1.18.1
  - password_policy: 2.0.0
  - photos: 3.0.2
  - privacy: 2.0.0
  - provisioning_api: 1.20.0
  - recommendations: 3.0.0
  - related_resources: 1.5.0
  - serverinfo: 2.0.0
  - settings: 1.13.0
  - sharebymail: 1.20.0
  - support: 2.0.0
  - survey_client: 2.0.0
  - systemtags: 1.20.0
  - tasks: 0.16.1
  - text: 4.1.0
  - theming: 2.5.0
  - twofactor_backupcodes: 1.19.0
  - updatenotification: 1.20.0
  - user_status: 1.10.0
  - viewer: 3.0.0
  - weather_status: 1.10.0
  - webhook_listeners: 1.1.0-dev
  - workflowengine: 2.12.0
Disabled:
  - admin_audit: 1.20.0
  - encryption: 2.18.0
  - files_external: 1.22.0
  - suspicious_login: 8.0.0
  - twofactor_nextcloud_notification: 4.0.0
  - twofactor_totp: 12.0.0-dev
  - user_ldap: 1.21.0

Fixed it! I had to add --with-jpeg to my PHP ./configure command when compiling.

1 Like

This topic was automatically closed 8 days after the last reply. New replies are no longer allowed.