Photos app stays empty and 502 error

Hello, i have a problem with the Photos app not showing photos, below is my current setup:

Nextcloud version: 25.0.0
Operating system: Nextcloud official docker image with Apache webserver. image: nextcloud:latest
PHP version: 8.1.12

The issue you are facing:
When opening the Photos app it opens “All media” by default and there are no pictures shown.
All other menu items (Photos, Video’s, Albums etc.) are empty as well, except for “Folders”, this is showing photos and i can browse them.

I would expect that these photos are also visible at “All media” but they don’t show there.
The photos and other Nextcloud data are on a local NFS share, all data in Nextcloud under the “Files” app is working as expected.

The output of your Nextcloud log in Admin > Logging:

No recent errors

The output of your config.php file

<?php
$CONFIG = array (
  'htaccess.RewriteBase' => '/',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'apps_paths' =>
  array (
    0 =>
    array (
      'path' => '/var/www/html/apps',
      'url' => '/apps',
      'writable' => false,
    ),
    1 =>
    array (
      'path' => '/var/www/html/custom_apps',
      'url' => '/custom_apps',
      'writable' => true,
    ),
  ),
  'memcache.distributed' => '\\OC\\Memcache\\Redis',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' =>
  array (
    'host' => 'redis',
    'password' => 'blaat',
    'port' => 6379,
  ),
  'instanceid' => 'blaat',
  'passwordsalt' => 'blaat',
  'secret' => 'blaat',
  'trusted_domains' =>
  array (
    0 => 'cloud.domain.nl',
  ),
  'overwrite.cli.url' => 'https://cloud.domain.nl',
  'overwriteprotocol' => 'https',
  'overwritehost' => 'cloud.domain.nl',
  'datadirectory' => '/var/www/html/data',
  'dbtype' => 'mysql',
  'version' => '25.0.0.18',
  'dbname' => 'nextcloud',
  'dbhost' => 'mariadb',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'trusted_proxies' =>
  array (
    0 => '192.168.60.1',
  ),
  'mysql.utf8mb4' => true,
  'dbuser' => 'nextcloud',
  'dbpassword' => 'blaat',
  'installed' => true,
  'default_phone_region' => 'NL',
  'twofactor_enforced' => 'true',
  'twofactor_enforced_groups' =>
  array (
    0 => 'admin',
  ),
  'twofactor_enforced_excluded_groups' =>
  array (
  ),
  'enable_previews' => true,
  'enabledPreviewProviders' =>
  array (
    0 => 'OC\\Preview\\TXT',
    1 => 'OC\\Preview\\MarkDown',
    2 => 'OC\\Preview\\OpenDocument',
    3 => 'OC\\Preview\\PDF',
    4 => 'OC\\Preview\\MSOffice2003',
    5 => 'OC\\Preview\\MSOfficeDoc',
    6 => 'OC\\Preview\\PDF',
    7 => 'OC\\Preview\\Image',
    8 => 'OC\\Preview\\Photoshop',
    9 => 'OC\\Preview\\TIFF',
    10 => 'OC\\Preview\\SVG',
    11 => 'OC\\Preview\\Font',
    12 => 'OC\\Preview\\MP3',
    13 => 'OC\\Preview\\Movie',
    14 => 'OC\\Preview\\MKV',
    15 => 'OC\\Preview\\MP4',
    16 => 'OC\\Preview\\HEIF',
    17 => 'OC\\Preview\\HEIC',
  ),
  'maintenance' => false,
  'loglevel' => 2,
  'theme' => '',
);

The output of your Nextcloud Apache log:

192.168.60.1 - - [02/Nov/2022:10:31:10 +0000] "GET /apps/photos/ HTTP/1.1" 200 9986 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0"

192.168.60.1 - - [02/Nov/2022:10:31:10 +0000] "GET /apps/photos/css/icons.css?v=d233662f-3 HTTP/1.1" 404 946 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0"

192.168.60.1 - - [02/Nov/2022:10:31:10 +0000] "GET /ocs/v2.php/search/providers?from=%2Fapps%2Fphotos%2F HTTP/1.1" 200 1129 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0"

192.168.60.1 - - [02/Nov/2022:10:31:10 +0000] "PUT /ocs/v2.php/apps/user_status/api/v1/heartbeat?format=json HTTP/1.1" 204 795 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0"

192.168.60.1 - - [02/Nov/2022:10:31:10 +0000] "GET /ocs/v2.php/apps/notifications/api/v2/notifications HTTP/1.1" 200 1034 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0"

192.168.60.1 - - [02/Nov/2022:10:31:10 +0000] "GET /index.php/apps/photos/service-worker.js HTTP/1.1" 200 6402 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0"

192.168.60.1 - - [02/Nov/2022:10:31:10 +0000] "GET /ocs/v2.php/apps/user_status/api/v1/user_status HTTP/1.1" 200 1033 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0"

Apache reverse proxy logging:

[Wed Nov  2 09:58:27.041843 2022] timestamp="1667383107" srcip="source-ip" localip="dst-ip" user="-" method="GET" statuscode="200" reason="-" extra="-" exceptions="-" duration="57512" url="/dist/core-main.js.map" server="cloud.domain.nl" referer="-" recvbytes="1489" sentbytes="117551" protocol="HTTP/1.1" ctype="application/javascript" uagent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0" querystring="?v=6d8c98d465820db5e10d" websocket_scheme="-" websocket_protocol="-" websocket_key="-" websocket_version="-" ruleid="61"
[Wed Nov  2 09:58:27.081722 2022] timestamp="1667383107" srcip="source-ip" localip="dst-ip" user="-" method="GET" statuscode="200" reason="-" extra="-" exceptions="-" duration="32978" url="/apps/text/js/text-viewer.js.map" server="cloud.domain.nl" referer="-" recvbytes="890" sentbytes="73885" protocol="HTTP/1.1" ctype="application/javascript" uagent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0" querystring="?v=3a57eb77c070cd55960b" websocket_scheme="-" websocket_protocol="-" websocket_key="-" websocket_version="-" ruleid="61"
[Wed Nov 02 09:58:27.243735 2022] [proxy_http:error] [pid 6380:tid 140203393918720] (103)Software caused connection abort: [client source-ip:50635] AH01102: error reading status line from remote server 192.168.60.100:8080
[Wed Nov 02 09:58:27.243787 2022] [proxy:error] [pid 6380:tid 140203393918720] [client source-ip:50635] AH00898: Error reading from remote server returned by /remote.php/dav/
[Wed Nov  2 09:58:27.240484 2022] timestamp="1667383107" srcip="source-ip" localip="dst-ip" user="-" method="SEARCH" statuscode="502" reason="-" extra="-" exceptions="-" duration="3611" url="/remote.php/dav/" server="cloud.domain.nl" referer="-" recvbytes="3326" sentbytes="6237" protocol="HTTP/1.1" ctype="text/html" uagent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0" querystring="" websocket_scheme="-" websocket_protocol="-" websocket_key="-" websocket_version="-" ruleid="61"
[Wed Nov  2 09:58:27.203195 2022] timestamp="1667383107" srcip="source-ip" localip="dst-ip" user="-" method="GET" statuscode="200" reason="-" extra="-" exceptions="-" duration="92162" url="/ocs/v2.php/apps/notifications/api/v2/notifications" server="cloud.domain.nl" referer="-" recvbytes="1605" sentbytes="6712" protocol="HTTP/1.1" ctype="application/json" uagent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0" querystring="" websocket_scheme="-" websocket_protocol="-" websocket_key="-" websocket_version="-" ruleid="61"

Firefox web developer tools:

SW registered:  
ServiceWorkerRegistration { installing: null, waiting: null, active: ServiceWorker, navigationPreload: NavigationPreloadManager, scope: "https://cloud.domain.nl/apps/photos", updateViaCache: "imports", onupdatefound: null, pushManager: PushManager }
Photos.vue:166
XHRSEARCHhttps://cloud.domain.nl/remote.php/dav/
[HTTP/1.1 502 Proxy Error 103ms]

[ERROR] photos: Error fetching files 
Object { level: 2, app: "photos", uid: "user", status: 502, response: {…} }
ConsoleLogger.js:64:10
Error: Invalid response: 502 Proxy Error
    i response.js:10
    handleResponseCode response.js:22
    getDirectoryContents directoryContents.js:68
    s directoryContents.js:33
    s directoryContents.js:36
    o directoryContents.js:5
    promise callback*u directoryContents.js:3
    r directoryContents.js:8
    r directoryContents.js:4
    getDirectoryContents directoryContents.js:50
    getDirectoryContents factory.js:63
    t PhotoSearch.js:146
    u runtime.js:286
    _invoke runtime.js:262
    F runtime.js:83
    h photos-src_mixins_FetchFilesMixin_js-src_mixins_FilesByMonthMixin_js-node_modules_vue-material-desig-f0a37f.js:2
    s photos-src_mixins_FetchFilesMixin_js-src_mixins_FilesByMonthMixin_js-node_modules_vue-material-desig-f0a37f.js:2
    m photos-src_mixins_FetchFilesMixin_js-src_mixins_FilesByMonthMixin_js-node_modules_vue-material-desig-f0a37f.js:2
    m photos-src_mixins_FetchFilesMixin_js-src_mixins_FilesByMonthMixin_js-node_modules_vue-material-desig-f0a37f.js:2
    b PhotoSearch.js:43
    y PhotoSearch.js:43
    n FetchFilesMixin.js:76
    u runtime.js:286
    _invoke runtime.js:262
    F runtime.js:83
    P PhotoSearch.js:43
    s PhotoSearch.js:43
    promise callback*P PhotoSearch.js:43
    s PhotoSearch.js:43
    promise callback*P PhotoSearch.js:43
    s PhotoSearch.js:43
    A PhotoSearch.js:43
    A PhotoSearch.js:43
    fetchFiles FetchFilesMixin.js:60
    getContent Timeline.vue:237
    VueJS 4
    needContent FilesListViewer.vue:228
    VueJS 4
    isNearBottom VirtualScrolling.vue:231
    VueJS 12
    resizeObserver VirtualScrolling.vue:260
    mounted VirtualScrolling.vue:257
    VueJS 18
    init vue-router.esm.js:2980
    init vue-router.esm.js:2978
FetchFilesMixin.js:114:12
Got notification data NotificationsApp.vue:365
Polling interval updated to 30000 NotificationsApp.vue:402

Does anyone have any idea what is causing the 502 Error? I think this is causing the issue why the photos are not showing, but the Nextcloud server logging is not showing any errors.
Other things (like sharing files, or other apps) of Nextcloud are working as expected.

Thanks!

1 Like

Currently running version 25.0.1 ans the problem is still there.
Any ideas?

Thanks!

1 Like

Did you ever figure this out? I am having the exact same issue.

No unfortunately i’m still having the same issue.
Currently running a little bit different setup by replacing the Apache reverse proxy by Nginx Proxy Manager but this did not solve the issue. The photos app is still empty as described in my topic start post.

So if anyone is having any idea how to fix this it would be appreciated. :slight_smile: