Unable to upload .htaccess through WebDAV

Nextcloud version (eg, 10.0.2): 12.0.3
Operating system and version (eg, Ubuntu 16.04): CentOS 6.9
Apache or nginx version (eg, Apache 2.4.25): Apache 2.2.15
PHP version (eg, 5.6): PHP 7.0
Is this the first time you’ve seen this error?: Yes

Can you reliably replicate it? (If so, please outline steps):

  • Use Cyberduck 6.2.6 on Mac (macOS 10.12.6)
  • Create WebDAV connection to server
  • Upload a directory containing a file named “.htaccess”
  • The transfer fails in Cybderduck and there is an exception in the server logs

NB:

  • I could not reproduce the error using the native WebDAV client of macOS since it’s not reliable.
  • There is no problem uploading the files using the Nextcloud client for Mac. [EDIT] Well, the client looks not accepting the files as there is a yellow (!) symbol next to them.

The issue you are facing:

  • Unable to upload a file named “.htaccess” through WebDav using Cyberduck

The output of your Nextcloud log in Admin > Logging:
{“reqId”:“gOl7BHldDCLgW0u99yN3”,“level”:4,“time”:“2017-10-08T19:45:33+00:00”,“remoteAddr”:“X.X.X.X”,“user”:“XXXXXX”,“app”:“webdav”,“method”:“PUT”,“url”:"/remote.php/webdav/Archives/XXXXXX/Projects/External/XXXXXX.be/Code/Development/2.0.0/Code/sites/all/modules/print/lib/tcpdf/tools/.htaccess",“message”:“Exception: {“Exception”:“OCP\\Files\\InvalidPathException”,“Message”:”",“Code”:0,“Trace”:"#0 \/home\/owncloud\/www\/apps\/dav\/lib\/Connector\/Sabre\/QuotaPlugin.php(147): OC\\Files\\View->free_space(‘Archives\/netbea…’)\n#1 \/home\/owncloud\/www\/apps\/dav\/lib\/Connector\/Sabre\/QuotaPlugin.php(108): OCA\\DAV\\Connector\\Sabre\\QuotaPlugin->getFreeSpace(’\/Archives\/netbe…’)\n#2 [internal function]: OCA\\DAV\\Connector\\Sabre\\QuotaPlugin->checkQuota(’\/Archives\/netbe…’, Resource id #514, Object(OCA\\DAV\\Connector\\Sabre\\Directory), false)\n#3 \/home\/owncloud\/www\/3rdparty\/sabre\/event\/lib\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\n#4 \/home\/owncloud\/www\/3rdparty\/sabre\/dav\/lib\/DAV\/Server.php(1094): Sabre\\Event\\EventEmitter->emit(‘beforeCreateFil…’, Array)\n#5 \/home\/owncloud\/www\/3rdparty\/sabre\/dav\/lib\/DAV\/CorePlugin.php(525): Sabre\\DAV\\Server->createFile(‘Archives\/netbea…’, Resource id #514, NULL)\n#6 [internal function]: Sabre\\DAV\\CorePlugin->httpPut(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\n#7 \/home\/owncloud\/www\/3rdparty\/sabre\/event\/lib\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\n#8 \/home\/owncloud\/www\/3rdparty\/sabre\/dav\/lib\/DAV\/Server.php(479): Sabre\\Event\\EventEmitter->emit(‘method:PUT’, Array)\n#9 \/home\/owncloud\/www\/3rdparty\/sabre\/dav\/lib\/DAV\/Server.php(254): Sabre\\DAV\\Server->invokeMethod(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\n#10 \/home\/owncloud\/www\/apps\/dav\/appinfo\/v1\/webdav.php(76): Sabre\\DAV\\Server->exec()\n#11 \/home\/owncloud\/www\/remote.php(162): require_once(’\/home\/owncloud\/…’)\n#12 {main}",“File”:"\/home\/owncloud\/www\/lib\/private\/Files\/View.php",“Line”:1090}",“userAgent”:“Cyberduck/6.2.6.26405 (Mac OS X/10.12.6) (x86_64)”,“version”:“12.0.3.3”}
{“reqId”:“VttxspSeNMFx6KU4CcjC”,“level”:4,“time”:“2017-10-08T19:45:34+00:00”,“remoteAddr”:“X.X.X.X”,“user”:“XXXXXX”,“app”:“webdav”,“method”:“PUT”,“url”:"/remote.php/webdav/Archives/XXXXXX/Projects/External/XXXXXX.be/Code/Development/2.0.0/Code/sites/all/modules/print/lib/tcpdf/tools/.htaccess",“message”:“Exception: {“Exception”:“OCP\\Files\\InvalidPathException”,“Message”:”",“Code”:0,“Trace”:"#0 \/home\/owncloud\/www\/apps\/dav\/lib\/Connector\/Sabre\/QuotaPlugin.php(147): OC\\Files\\View->free_space(‘Archives\/netbea…’)\n#1 \/home\/owncloud\/www\/apps\/dav\/lib\/Connector\/Sabre\/QuotaPlugin.php(108): OCA\\DAV\\Connector\\Sabre\\QuotaPlugin->getFreeSpace(’\/Archives\/netbe…’)\n#2 [internal function]: OCA\\DAV\\Connector\\Sabre\\QuotaPlugin->checkQuota(’\/Archives\/netbe…’, Resource id #514, Object(OCA\\DAV\\Connector\\Sabre\\Directory), false)\n#3 \/home\/owncloud\/www\/3rdparty\/sabre\/event\/lib\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\n#4 \/home\/owncloud\/www\/3rdparty\/sabre\/dav\/lib\/DAV\/Server.php(1094): Sabre\\Event\\EventEmitter->emit(‘beforeCreateFil…’, Array)\n#5 \/home\/owncloud\/www\/3rdparty\/sabre\/dav\/lib\/DAV\/CorePlugin.php(525): Sabre\\DAV\\Server->createFile(‘Archives\/netbea…’, Resource id #514, NULL)\n#6 [internal function]: Sabre\\DAV\\CorePlugin->httpPut(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\n#7 \/home\/owncloud\/www\/3rdparty\/sabre\/event\/lib\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\n#8 \/home\/owncloud\/www\/3rdparty\/sabre\/dav\/lib\/DAV\/Server.php(479): Sabre\\Event\\EventEmitter->emit(‘method:PUT’, Array)\n#9 \/home\/owncloud\/www\/3rdparty\/sabre\/dav\/lib\/DAV\/Server.php(254): Sabre\\DAV\\Server->invokeMethod(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\n#10 \/home\/owncloud\/www\/apps\/dav\/appinfo\/v1\/webdav.php(76): Sabre\\DAV\\Server->exec()\n#11 \/home\/owncloud\/www\/remote.php(162): require_once(’\/home\/owncloud\/…’)\n#12 {main}",“File”:"\/home\/owncloud\/www\/lib\/private\/Files\/View.php",“Line”:1090}",“userAgent”:“Cyberduck/6.2.6.26405 (Mac OS X/10.12.6) (x86_64)”,“version”:“12.0.3.3”}

The output of your config.php file in /path/to/nextcloud (make sure you remove any identifiable information!):
$CONFIG = array (
‘instanceid’ => ‘XXXXXX’,
‘passwordsalt’ => ‘XXXXXX’,
‘secret’ => ‘XXXXXX’,
‘trusted_domains’ =>
array (
0 => ‘XXXXXX’,
),
‘datadirectory’ => ‘/home/owncloud_data’,
‘overwrite.cli.url’ => ‘XXXXXX’,
‘dbtype’ => ‘mysql’,
‘version’ => ‘12.0.3.3’,
‘dbname’ => ‘XXXXXX’,
‘dbhost’ => ‘localhost’,
‘dbtableprefix’ => ‘oc_’,
‘dbuser’ => ‘XXXXXX’,
‘dbpassword’ => ‘XXXXXX’,
‘logtimezone’ => ‘UTC’,
‘installed’ => true,
‘singleuser’ => false,
‘mail_from_address’ => ‘XXXXXX’,
‘mail_smtpmode’ => ‘php’,
‘mail_domain’ => ‘XXXXXX’,
‘theme’ => ‘’,
‘loglevel’ => 0,
‘maintenance’ => false,
‘appstore.experimental.enabled’ => true,
‘preview_libreoffice_path’ => ‘/usr/lib64/libreoffice/program/soffice.bin’,
‘memcache.local’ => ‘\OC\Memcache\APCu’,
);

The output of your Apache/nginx/system log in /var/log/____:
X.X.X.X - - [08/Oct/2017:21:45:32 +0200] “PUT /remote.php/webdav/Archives/XXXXXX/Projects/External/XXXXXX.be/Code/Development/2.0.0/Code/sites/all/modules/print/lib/tcpdf/tools/.htaccess HTTP/1.1” 500 194 “-” "Cyberduck/6.2.6.26405 (Mac OS X/10.12.6) (x86_64)"
X.X.X.X - - [08/Oct/2017:21:45:33 +0200] “PUT /remote.php/webdav/Archives/XXXXXX/Projects/External/XXXXXX.be/Code/Development/2.0.0/Code/sites/all/modules/print/lib/tcpdf/tools/.htaccess HTTP/1.1” 500 194 “-” “Cyberduck/6.2.6.26405 (Mac OS X/10.12.6) (x86_64)”

Ok, sorry, my topic is a duplicate. See: