The Basics
-
Nextcloud Server version (e.g., 29.x.x):
33.0.3
-
Operating system and version (e.g., Ubuntu 24.04):
Ubuntu Server 24.04
-
Web server and version (e.g, Apache 2.4.25):
Apache 2.4.66
Reverse proxy and version _(e.g. nginx 1.27.2)
Nginx 1.30.0
-
PHP version (e.g, 8.3):
PHP 8.4.20
-
Is this the first time you’ve seen this error? (Yes / No):
Yes
-
When did this problem seem to first start?
don't know
-
Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
docker image nextcloud:latest
-
Are you using CloudfIare, mod_security, or similar? (Yes / No)
No
Summary of the issue you are facing:
I create an album in Photos App and add photos and videos to it. In the album properties, I create a public link and share it with friends who don’t have an account on my Nextcloud. When the user opens the public link, the photos open in their browser, but the videos don’t open or play.
Steps to replicate it (hint: details matter!):
-
create an album in Photos App and add photos and videos to it
-
create a public link of album and share it
-
try to open link in browser and play videos
Log entries
Nextcloud
{"reqId":"ZgVCzBQ5nmCgYINzClbA","level":3,"time":"2026-05-09T10:56:34+00:00","remoteAddr":"192.168.50.1","user":"--","app":"no app in context","method":"GET","url":"/public.php/dav/files/null/XQQ2118WC54XdU9etjtIxsEVBLPKzPT9/272820-20260421_135732.mp4","scriptName":"/public.php","message":"Exception thrown: Sabre\\DAV\\Exception\\NotFound","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36 Edg/147.0.0.0","version":"33.0.3.2","exception":{"Exception":"Sabre\\DAV\\Exception\\NotFound","Message":"","Code":0,"Trace":[{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/PublicAuth.php","line":82,"function":"checkToken","class":"OCA\\DAV\\Connector\\Sabre\\PublicAuth","type":"->","args":[]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Auth/Plugin.php","line":179,"function":"check","class":"OCA\\DAV\\Connector\\Sabre\\PublicAuth","type":"->","args":[{"__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Auth/Plugin.php","line":135,"function":"check","class":"Sabre\\DAV\\Auth\\Plugin","type":"->","args":[{"__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"beforeMethod","class":"Sabre\\DAV\\Auth\\Plugin","type":"->","args":[{"__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":456,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["beforeMethod:GET",[{"__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]]},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Server.php","line":212,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->","args":[{"__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"/var/www/html/apps/dav/appinfo/v2/publicremote.php","line":164,"function":"start","class":"OCA\\DAV\\Connector\\Sabre\\Server","type":"->","args":[]},{"file":"/var/www/html/public.php","line":90,"args":["/var/www/html/apps/dav/appinfo/v2/publicremote.php"],"function":"require_once"}],"File":"/var/www/html/apps/dav/lib/Connector/Sabre/PublicAuth.php","Line":133,"message":"","exception":"{\"class\":\"Sabre\\DAV\\Exception\\NotFound\",\"message\":\"\",\"code\":0,\"file\":\"/var/www/html/apps/dav/lib/Connector/Sabre/PublicAuth.php:133\",\"trace\":\"#0 /var/www/html/apps/dav/lib/Connector/Sabre/PublicAuth.php(82): OCA\\DAV\\Connector\\Sabre\\PublicAuth->checkToken()\\n#1 /var/www/html/3rdparty/sabre/dav/lib/DAV/Auth/Plugin.php(179): OCA\\DAV\\Connector\\Sabre\\PublicAuth->check(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#2 /var/www/html/3rdparty/sabre/dav/lib/DAV/Auth/Plugin.php(135): Sabre\\DAV\\Auth\\Plugin->check(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#3 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): Sabre\\DAV\\Auth\\Plugin->beforeMethod(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#4 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(456): Sabre\\DAV\\Server->emit('beforeMethod:GE...', Array)\\n#5 /var/www/html/apps/dav/lib/Connector/Sabre/Server.php(212): Sabre\\DAV\\Server->invokeMethod(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#6 /var/www/html/apps/dav/appinfo/v2/publicremote.php(164): OCA\\DAV\\Connector\\Sabre\\Server->start()\\n#7 /var/www/html/public.php(90): require_once('/var/www/html/a...')\\n#8 {main}\"}","CustomMessage":"Exception thrown: Sabre\\DAV\\Exception\\NotFound"},"id":"69ff17e4b144e"}
Web Browser
Viewer.vue:518 [INFO] viewer: No OCP.Files app found, viewer is now in standalone mode {app: 'viewer', level: 0}
Viewer.vue:542 [INFO] viewer: 5 viewer handlers registered {app: 'viewer', level: 0, handlers: Array(5)}
session-heartbeat.ts:80 [INFO] core: session heartbeat polling started {app: 'core', level: 0}
A bad HTTP response code (401) was received when fetching the script.
PhotosAppPublic.vue:64 [ERROR] photos: SW registration failed: {app: 'photos', level: 0, error: TypeError: Failed to register a ServiceWorker for scope ('https://cloud.sapligin.ru/apps/photos') w…}app: "photos"error: TypeError: Failed to register a ServiceWorker for scope ('https://cloud.sapligin.ru/apps/photos') with script ('https://cloud.sapligin.ru/index.php/apps/photos/service-worker.js'): A bad HTTP response code (401) was received when fetching the script.message: "Failed to register a ServiceWorker for scope ('https://cloud.sapligin.ru/apps/photos') with script ('https://cloud.sapligin.ru/index.php/apps/photos/service-worker.js'): A bad HTTP response code (401) was received when fetching the script."stack: "TypeError: Failed to register a ServiceWorker for scope ('https://cloud.sapligin.ru/apps/photos') with script ('https://cloud.sapligin.ru/index.php/apps/photos/service-worker.js'): A bad HTTP response code (401) was received when fetching the script."[[Prototype]]: Errorconstructor: ƒ TypeError()length: 1name: "TypeError"prototype: Errorconstructor: ƒ TypeError()message: ""name: "TypeError"[[Prototype]]: Objectconstructor: ƒ Error()stackTraceLimit: 10captureStackTrace: ƒ captureStackTrace()isError: ƒ isError()length: 1name: "Error"prototype: {name: 'Error', message: '', toString: ƒ}arguments: (...)caller: (...)[[Prototype]]: ƒ ()[[Scopes]]: Scopes[0]message: ""name: "Error"toString: ƒ toString()[[Prototype]]: Objectarguments: (...)caller: (...)[[Prototype]]: ƒ Error()[[Scopes]]: Scopes[0]message: ""name: "TypeError"[[Prototype]]: Objectlevel: 0[[Prototype]]: Object
log @ index.mjs:54
error @ index.mjs:72
(anonymous) @ PhotosAppPublic.vue:64
nqA3rrLna9BIDkHS6ALRnzWFLgComLRe:1 [Intervention] Images loaded lazily and replaced with placeholders. Load events are deferred. See https://go.microsoft.com/fwlink/?linkid=2048113
Web server / Reverse Proxy
192.168.50.1 - - [09/May/2026:14:24:37 +0300] "GET /apps/photos/api/v1/publicPreview/272215?etag=35f9c76e428b16b506d285d1b649be3a&x=256&y=256&token=nqA3rrLna9BIDkHS6ALRnzWFLgComLRe HTTP/2.0" 200 3161 "-" "Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36 Edg/147.0.0.0"
192.168.50.1 - - [09/May/2026:14:24:37 +0300] "GET /apps/photos/api/v1/publicPreview/272220?etag=49670c05bd2b9315ddb6762d9ee9fee9&x=256&y=256&token=nqA3rrLna9BIDkHS6ALRnzWFLgComLRe HTTP/2.0" 200 5379 "-" "Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36 Edg/147.0.0.0"
192.168.50.1 - - [09/May/2026:14:24:37 +0300] "GET /apps/photos/api/v1/publicPreview/272223?etag=0b04b2a25271854fae4b0a6655a452ae&x=256&y=256&token=nqA3rrLna9BIDkHS6ALRnzWFLgComLRe HTTP/2.0" 200 7821 "-" "Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36 Edg/147.0.0.0"
192.168.50.1 - - [09/May/2026:14:24:38 +0300] "GET /apps/photos/api/v1/publicPreview/272222?etag=c9523d289938b0bb3f7d06db398eedf1&x=64&y=64&token=nqA3rrLna9BIDkHS6ALRnzWFLgComLRe HTTP/2.0" 200 1493 "-" "Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36 Edg/147.0.0.0"
192.168.50.1 - - [09/May/2026:14:24:38 +0300] "GET /apps/photos/api/v1/publicPreview/272224?etag=9a19883e920860b6fe31b966daec3b86&x=64&y=64&token=nqA3rrLna9BIDkHS6ALRnzWFLgComLRe HTTP/2.0" 200 1535 "-" "Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36 Edg/147.0.0.0"
192.168.50.1 - - [09/May/2026:14:24:38 +0300] "GET /apps/photos/api/v1/publicPreview/272222?etag=c9523d289938b0bb3f7d06db398eedf1&x=256&y=256&token=nqA3rrLna9BIDkHS6ALRnzWFLgComLRe HTTP/2.0" 200 9215 "-" "Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36 Edg/147.0.0.0"
192.168.50.1 - - [09/May/2026:14:24:38 +0300] "GET /apps/photos/api/v1/publicPreview/272224?etag=9a19883e920860b6fe31b966daec3b86&x=256&y=256&token=nqA3rrLna9BIDkHS6ALRnzWFLgComLRe HTTP/2.0" 200 10547 "-" "Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36 Edg/147.0.0.0"
192.168.50.1 - - [09/May/2026:14:24:40 +0300] "GET /public.php/dav/photospublic/nqA3rrLna9BIDkHS6ALRnzWFLgComLRe/272242-20260417_192842.mp4 HTTP/2.0" 503 37152 "-" "Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36 Edg/147.0.0.0"
192.168.50.1 - - [09/May/2026:14:24:40 +0300] "GET /public.php/dav/photospublic/nqA3rrLna9BIDkHS6ALRnzWFLgComLRe/272242-20260417_192842.mp4 HTTP/2.0" 503 37152 "-" "Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36 Edg/147.0.0.0"
Configuration
Nextcloud
{
"system": {
"htaccess.RewriteBase": "\/",
"memcache.local": "\\OC\\Memcache\\APCu",
"apps_paths": [
{
"path": "\/var\/www\/html\/apps",
"url": "\/apps",
"writable": false
},
{
"path": "\/var\/www\/html\/custom_apps",
"url": "\/custom_apps",
"writable": true
}
],
"instanceid": "***REMOVED SENSITIVE VALUE***",
"passwordsalt": "***REMOVED SENSITIVE VALUE***",
"secret": "***REMOVED SENSITIVE VALUE***",
"trusted_domains": [
"cloud.sapligin.ru",
"192.168.50.7",
"172.30.1.4"
],
"trusted_proxies": "***REMOVED SENSITIVE VALUE***",
"datadirectory": "***REMOVED SENSITIVE VALUE***",
"dbtype": "mysql",
"version": "33.0.3.2",
"dbname": "***REMOVED SENSITIVE VALUE***",
"dbhost": "***REMOVED SENSITIVE VALUE***",
"dbport": "",
"dbtableprefix": "oc_",
"mysql.utf8mb4": true,
"dbuser": "***REMOVED SENSITIVE VALUE***",
"dbpassword": "***REMOVED SENSITIVE VALUE***",
"installed": true,
"overwrite.cli.url": "https:\/\/cloud.sapligin.ru",
"forwarded_for_headers": [
"HTTP_X_FORWARDED",
"HTTP_X_FORWARDED_FOR"
],
"overwriteprotocol": "https",
"filelocking.enabled": true,
"memcache.locking": "\\OC\\Memcache\\Redis",
"redis": {
"host": "***REMOVED SENSITIVE VALUE***",
"port": 6379,
"timeout": 0,
"password": "***REMOVED SENSITIVE VALUE***"
},
"default_phone_region": "RU",
"mail_smtpmode": "smtp",
"mail_smtpsecure": "ssl",
"mail_sendmailmode": "smtp",
"mail_smtphost": "***REMOVED SENSITIVE VALUE***",
"mail_smtpauth": 1,
"mail_from_address": "***REMOVED SENSITIVE VALUE***",
"mail_domain": "***REMOVED SENSITIVE VALUE***",
"mail_smtpport": "465",
"mail_smtpname": "***REMOVED SENSITIVE VALUE***",
"mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
"twofactor_enforced": "true",
"twofactor_enforced_groups": [],
"twofactor_enforced_excluded_groups": [],
"loglevel": 0,
"maintenance": false,
"maintenance_window_start": 1,
"theme": "",
"enable_previews": true,
"enabledPreviewProviders": {
"1": "OC\\Preview\\PDF",
"2": "OC\\Preview\\Image",
"3": "OC\\Preview\\Photoshop",
"4": "OC\\Preview\\TIFF",
"5": "OC\\Preview\\SVG",
"6": "OC\\Preview\\Movie",
"7": "OC\\Preview\\MKV",
"8": "OC\\Preview\\MP4",
"9": "OC\\Preview\\AVI",
"10": "OC\\Preview\\HEIC"
},
"upgrade.disable-web": true
}
}
Apps
Enabled:
- activity: 6.0.0
- admin_audit: 1.23.0
- app_api: 33.0.0
- assistant: 3.4.1
- bruteforcesettings: 6.0.0
- calendar: 6.2.4
- circles: 33.0.0
- cloud_federation_api: 1.17.0
- comments: 1.23.0
- contacts: 8.4.5
- contactsinteraction: 1.14.1
- context_chat: 5.3.1
- dashboard: 7.13.0
- dav: 1.36.0
- federatedfilesharing: 1.23.0
- federation: 1.23.0
- files: 2.5.0
- files_downloadlimit: 5.1.0
- files_pdfviewer: 6.0.0
- files_reminders: 1.6.0
- files_sharing: 1.25.2
- files_trashbin: 1.23.0
- files_versions: 1.26.0
- firstrunwizard: 6.0.0
- logreader: 6.0.0
- lookup_server_connector: 1.21.0
- mail: 5.7.14
- music: 3.0.0
- nextcloud_announcements: 5.0.0
- notes: 5.0.0
- notifications: 6.0.0
- notify_push: 1.3.2
- oauth2: 1.21.0
- password_policy: 5.0.0
- passwords: 2026.5.20
- photos: 6.0.0
- privacy: 5.0.0
- profile: 1.2.0
- provisioning_api: 1.23.0
- recommendations: 6.0.0
- related_resources: 4.0.0
- richdocuments: 10.1.3
- richdocumentscode: 25.4.904
- serverinfo: 5.0.0
- settings: 1.16.0
- sharebymail: 1.23.0
- spreed: 23.0.4
- support: 5.0.0
- survey_client: 5.0.0
- suspicious_login: 11.0.0
- systemtags: 1.23.0
- text: 7.0.1
- theming: 2.8.0
- twofactor_backupcodes: 1.22.0
- twofactor_totp: 15.0.0
- updatenotification: 1.23.0
- user_status: 1.13.0
- viewer: 6.0.0
- weather_status: 1.13.0
- webhook_listeners: 1.5.0
- workflowengine: 2.15.0
Disabled: - encryption: 2.21.0
- files_external: 1.25.1
- files_rightclick: 0.15.1 (installed 1.6.0)
- testing: 1.23.0
- twofactor_nextcloud_notification: 7.0.0
- user_ldap: 1.24.0