Unable to open/synchronize PDF files with special characters (€) changelog #298

Nextcloud version: 20.0.7
Operating system and version: docker nextcloud:stable
Apache or nginx version: docker nextcloud:stable
PHP version: docker nextcloud:stable

I cannot open the pdf file in browser with Firefox and GoogleChrome show the same error message.
When using the Android Nextcloud client I get an error message. Same for the nextcloud windows application.
The pdf file contains a character and the upper folders contain some german umlauts (like ä,ü,ö)
At the end I added some additional screenshots which might provide some useful information.

When accessing the file by the Android Client (Nextcloud 3.15.0) nothing happens. Instead I get a notification that the server is in “maintenance mode” which is not true.

According to the changelog Changelog – Nextcloud there were some efforts to fix the pdf file behavior.

Unfortunately this did not help.

Is this the first time you’ve seen this error?: Y

Steps to replicate it:

  1. I do not know :frowning: Uploading a PDF with character in the filename works flawless

The output of your Nextcloud log in Admin > Logging:

[PHP] Error: Error: fopen(/var/www/owncloud/data/XXX/files/Documents/Vertraege/Versicherungen/XXX/XXX/XXX/SBU_XXX€_XXX.pdf): failed to open stream: No such file or directory at /var/www/html/lib/private/Files/Storage/Local.php#355 at <<closure>>

 0. <<closure>>
    OC\Log\ErrorHandler::onError(2, "fopen(/var/www/ ... y", "/var/www/html/l ... p", 355, {path: "files/Do ... "})
 1. /var/www/html/lib/private/Files/Storage/Local.php line 355
    fopen("/var/www/ownclo ... f", "r")
 2. /var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php line 300
    OC\Files\Storage\Local->fopen("files/Documents ... f", "r")
 3. /var/www/html/lib/private/Files/View.php line 1165
    OC\Files\Storage\Wrapper\Wrapper->fopen("files/Documents ... f", "r")
 4. /var/www/html/lib/private/Files/View.php line 1001
    OC\Files\View->basicOperation("fopen", "/Documents/Vert ... f", ["read"], "r")
 5. /var/www/html/apps/dav/lib/Connector/Sabre/File.php line 434
    OC\Files\View->fopen("Documents/Vertr ... f", "r")
 6. /var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php line 90
    OCA\DAV\Connector\Sabre\File->get()
 7. /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php line 89
    Sabre\DAV\CorePlugin->httpGet(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
 8. /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php line 474
    Sabre\DAV\Server->emit("method:GET", [Sabre\HTTP\Requ ... }])
 9. /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php line 251
    Sabre\DAV\Server->invokeMethod(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
10. /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php line 319
    Sabre\DAV\Server->start()
11. /var/www/html/apps/dav/lib/Server.php line 332
    Sabre\DAV\Server->exec()
12. /var/www/html/apps/dav/appinfo/v2/remote.php line 35
    OCA\DAV\Server->exec()
13. /var/www/html/remote.php line 167
    require_once("/var/www/html/a ... p")

GET /remote.php/dav/files/XXX/Documents/Vertraege/Versicherungen/XXX%C3%A4XXX_XXX/XXX/XXX/SBU_XXX%E2%82%AC_XXX.pdf
from 172.17.0.1 by XXX at 2021-02-15T20:57:11+00:00

The output of your config.php file in /path/to/nextcloud (make sure you remove any identifiable information!):

<?php
$CONFIG = array (
  'instanceid' => 'XXX',
  'passwordsalt' => 'XXX',
  'secret' => 'XXX',
  'trusted_domains' =>
  array (
    0 => 'localhost',
    1 => 'XXX',
  ),
  'datadirectory' => '/var/www/owncloud/data',
  'dbtype' => 'sqlite3',
  'version' => '20.0.7.1',
  'logtimezone' => 'UTC',
  'installed' => true,
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'appstore.experimental.enabled' => true,
  'maintenance' => false,
  'theme' => '',
  'loglevel' => 0,
  'updatechecker' => false,
  'enable_previews' => true,
  'updater.release.channel' => 'stable',
  'overwriteprotocol' => 'https',
  'overwrite.cli.url' => 'https://XXX:8443',
  'updater.secret' => 'XXX',
);

The output of your Apache/nginx/system log in /var/log/____:
I do not have any apache/nginx/system logs

Displaying the filename in bash by ls -lah: (strange the “€” is displayed as “?”)
ls_lah

Error message when trying to display the pdf in the browser: