Can't move or add files to external storage via web interface

Support intro

Sorry to hear you’re facing problems. :slightly_frowning_face:

The community help forum (help.nextcloud.com) is for home and non-enterprise users. Support is provided by other community members on a best effort / “as available” basis. All of those responding are volunteering their time to help you.

If you’re using Nextcloud in a business/critical setting, paid and SLA-based support services can be accessed via portal.nextcloud.com where Nextcloud engineers can help ensure your business keeps running smoothly.

Getting help

In order to help you as efficiently (and quickly!) as possible, please fill in as much of the below requested information as you can.

Before clicking submit: Please check if your query is already addressed via the following resources:

(Utilizing these existing resources is typically faster. It also helps reduce the load on our generous volunteers while elevating the signal to noise ratio of the forums otherwise arising from the same queries being posted repeatedly).

Some or all of the below information will be requested if it isn’t supplied; for fastest response please provide as much as you can. :heart:

The Basics

  • Nextcloud Server version (e.g., 29.x.x):
    • 31.0.9
  • Operating system and version (e.g., Ubuntu 24.04):
    • ubuntu server 24.04.3
  • Web server and version (e.g, Apache 2.4.25):
    • 2.4.65
  • Reverse proxy and version _(e.g. nginx 1.27.2)
    • dont think i have one?
  • PHP version (e.g, 8.3):
    • 8.3.26
  • Is this the first time you’ve seen this error? (Yes / No):
    • no
  • When did this problem seem to first start?
    • yesterday evening
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • AIO
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • No, dont think so

Summary of the issue you are facing:

Every time I try to move a file to my external storage I get the error ““Move or copy” failed on some elements”. whenever I try to directly upload the file to the external storage via the web interface i get the error “unknown error during upload”. filesize is irrelevant, always fails. I have Automatic Ripping Machine ripping directly to the external storage drive and thats working fine

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

  1. install via AIO on an ubuntu server system

  2. add mounted external storage drives via external storage app

  3. attempt to upload file to external drive (error)

  4. upload file to main drive

  5. attempt to move file to external drive (error)

Log entries

Nextcloud

Please provide the log entries from your Nextcloud log that are generated during the time of problem (via the Copy raw option from Administration settings->Logging screen or from your nextcloud.log located in your data directory). Feel free to use a pastebin/gist service if necessary.

{"reqId":"5pcdE2VcIsOK7Cv9XGrq","level":3,"time":"2025-10-25T13:25:51+00:00","remoteAddr":"192.168.0.1","user":"admin","app":"no app in context","method":"PUT","url":"/remote.php/dav/uploads/admin/web-file-upload-3776a6c919f23393/1","message":"Expected filesize of 104857600 bytes but read (from Nextcloud client) and wrote (to Nextcloud storage) 104849408 bytes. Could either be a network problem on the sending side or a problem writing to the storage on the server side.","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","version":"31.0.9.1","exception":{"Exception":"Sabre\\DAV\\Exception\\BadRequest","Message":"Expected filesize of 104857600 bytes but read (from Nextcloud client) and wrote (to Nextcloud storage) 104849408 bytes. Could either be a network problem on the sending side or a problem writing to the storage on the server side.","Code":0,"Trace":[{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Directory.php","line":116,"function":"put","class":"OCA\\DAV\\Connector\\Sabre\\File","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/apps/dav/lib/Upload/UploadFolder.php","line":28,"function":"createFile","class":"OCA\\DAV\\Connector\\Sabre\\Directory","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":1098,"function":"createFile","class":"OCA\\DAV\\Upload\\UploadFolder","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php","line":504,"function":"createFile","class":"Sabre\\DAV\\Server","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"httpPut","class":"Sabre\\DAV\\CorePlugin","type":"->","args":[{"__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":472,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["method:PUT",[{"__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]]},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Server.php","line":49,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->","args":[{"__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"/var/www/html/apps/dav/lib/Server.php","line":401,"function":"start","class":"OCA\\DAV\\Connector\\Sabre\\Server","type":"->","args":[]},{"file":"/var/www/html/apps/dav/appinfo/v2/remote.php","line":21,"function":"exec","class":"OCA\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/remote.php","line":145,"args":["/var/www/html/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/var/www/html/apps/dav/lib/Connector/Sabre/File.php","Line":257,"message":"Expected filesize of 104857600 bytes but read (from Nextcloud client) and wrote (to Nextcloud storage) 104849408 bytes. Could either be a network problem on the sending side or a problem writing to the storage on the server side.","exception":[],"CustomMessage":"Expected filesize of 104857600 bytes but read (from Nextcloud client) and wrote (to Nextcloud storage) 104849408 bytes. Could either be a network problem on the sending side or a problem writing to the storage on the server side."},"id":"68fcddbe5fd82"}




uploading issue: 
{"reqId":"3F2dEi3uSkvkO7GI38D5","level":3,"time":"2025-10-24T13:08:14+00:00","remoteAddr":"192.168.0.1","user":"admin","app":"files_external","method":"POST","url":"/apps/files_external/globalstorages","message":"Local storage path does not exist \"/nextcloud/\"","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0","version":"31.0.9.1","exception":{"Exception":"OCP\\Files\\StorageNotAvailableException","Message":"Local storage path does not exist \"/nextcloud/\"","Code":1,"Trace":[{"file":"/var/www/html/apps/files_external/lib/MountConfig.php","line":89,"function":"__construct","class":"OC\\Files\\Storage\\Local","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/apps/files_external/lib/Controller/StoragesController.php","line":225,"function":"getBackendStatus","class":"OCA\\Files_External\\MountConfig","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/apps/files_external/lib/Controller/GlobalStoragesController.php","line":115,"function":"updateStorageStatus","class":"OCA\\Files_External\\Controller\\StoragesController","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Http/Dispatcher.php","line":200,"function":"create","class":"OCA\\Files_External\\Controller\\GlobalStoragesController","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Http/Dispatcher.php","line":114,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Files_External\\Controller\\GlobalStoragesController"},"create"]},{"file":"/var/www/html/lib/private/AppFramework/App.php","line":161,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Files_External\\Controller\\GlobalStoragesController"},"create"]},{"file":"/var/www/html/lib/private/Route/Router.php","line":315,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OCA\\Files_External\\Controller\\GlobalStoragesController","create",{"__class__":"OC\\AppFramework\\DependencyInjection\\DIContainer"},{"_route":"files_external.global_storages.create"}]},{"file":"/var/www/html/lib/base.php","line":1063,"function":"match","class":"OC\\Route\\Router","type":"->","args":["/apps/files_external/globalstorages"]},{"file":"/var/www/html/index.php","line":24,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"/var/www/html/lib/private/Files/Storage/Local.php","Line":71,"Hint":"Storage is temporarily not available","message":"Local storage path does not exist \"/nextcloud/\"","exception":[],"CustomMessage":"Local storage path does not exist \"/nextcloud/\""},"id":"68fcddbe6001f"}

Web Browser

If the problem is related to the Web interface, open your browser inspector Console and Network tabs while refreshing (reloading) and reproducing the problem. Provide any relevant output/errors here that appear.

[ERROR] @nextcloud/upload: Failed uploading actuator screw strong 429030(1).3mf 
Object { app: "@nextcloud/upload", uid: "admin", level: 2, error: {…}, file: File, upload: {…} }
index.mjs:54:17
    log index.mjs:54
    error index.mjs:72
    i index-DdKmqUaK.mjs:979
    add index.js:223
    #P index.js:120
    add index.js:247
    add index.js:217
    upload index-DdKmqUaK.mjs:984
    <anonymous> index.js:68
    i index.js:34
    upload index-DdKmqUaK.mjs:837
    uploadDirectory index-DdKmqUaK.mjs:811
    <anonymous> index.js:68
    i index.js:34
    uploadDirectory index-DdKmqUaK.mjs:782
    batchUpload index-DdKmqUaK.mjs:716
    <anonymous> index.js:68
    i index.js:34
    batchUpload index-DdKmqUaK.mjs:706
    onPick index-DdKmqUaK.mjs:1438
    VueJS 26
[ERROR] @nextcloud/upload: Error in batch upload 
Object { app: "@nextcloud/upload", uid: "admin", level: 2, error: "Failed to upload the file" }
index.mjs:54:17
    log index.mjs:54
    error index.mjs:72
    batchUpload index-DdKmqUaK.mjs:727
    <anonymous> index.js:68
    i index.js:34
    batchUpload index-DdKmqUaK.mjs:706
    onPick index-DdKmqUaK.mjs:1438
    VueJS 38
    setRoot files.ts:90
    a pinia.mjs:1399
    fetchContent FilesList.vue:377
    mounted FilesList.vue:334
    VueJS 11
    36467 main.ts:32
    Webpack 5

​

Web server / Reverse Proxy

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

as said above, pretty sure I dont have one

Configuration

Nextcloud

The output of occ config:list system or similar is best, but, if not possible, the contents of your config.php file from /path/to/nextcloud is fine (make sure to remove any identifiable information!):

I couldn't find either, but the php section in system reads


Version: 8.3.26

Memory limit: 512 MB

Max execution time: 3600

Upload max size: 16 GB

OPcache Revalidate Frequency: 60

Extensions: Core, date, libxml, openssl, pcre, sqlite3, zlib, ctype, curl, dom, fileinfo, filter, hash, iconv, json, mbstring, SPL, session, PDO, pdo_sqlite, bz2, posix, random, readline, Reflection, standard, SimpleXML, tokenizer, xml, xmlreader, xmlwriter, mysqlnd, cgi-fcgi, apcu, bcmath, Phar, exif, ftp, gd, gmp, igbinary, imagick, imap, intl, ldap, memcached, pcntl, pdo_pgsql, pgsql, redis, smbclient, sodium, sysvsem, zip, libsmbclient, Zend OPcache

Apps

The output of occ app:list (if possible).

Activity 4.0.0

brute-force setting 4.0.0

client push 1.2.0

collaborative tags 1.21.1

comments 1.21.0

contacts interaction 1.12.0

dashboard 7.11.0

deleted files 1.21.0

external storage support 1.23.0

federation 1.21.0

file reminders 1.4.0

file sharing 1.23.1

files download limit 4.0.0

first run wizard 4.0.0

log reader 4.0.0

monitoring 3.0.0

nextcloud all-in-one 0.8.0

nextcloud office 8.7.6

nextcloud announcements 3.0.0

nextcloud webhook support 1.2.0

notification 4.0.0

pdf viewer 4.0.0

password policy 3.0.0

photos 4.0.0

privacy 3.0.0

recommendations 4.0.0

related resources 2.0.0

share by mail 1.21.0

support 3.0.0

talk 21.1.5

teams 31.0.0

text 5.0.0

update notification 1.21.0

usage survey 3.0.0

user status 1.11.0

versions 1.24.0

weather status 1.11.0

whiteboard 1.4.0

Tips for increasing the likelihood of a response

  • Use the preformatted text formatting option in the editor for all log entries and configuration output.
  • If screenshots are useful, feel free to include them.
    • If possible, also include key error output in text form so it can be searched for.
  • Try to edit log output only minimally (if at all) so that it can be ran through analyzers / formatters by those trying to help you.
  • what permissions are set for the external file system?
  • what permissions are required for mounting the file system in docker AIO?

probably Nextcloud is not able to read/write to that file system, because the permission required by AIO are not set correctly.

I’ve gotta be honest, I’m totally new to all this. How would I go about checking/changing those? Also ARM is not writing to those drives. It’s weird, in nextcloud its showing as being on the external storage but when I look at disk space it’s all taken up on the main drive

no worries, we all started out from the beginning… we’ll get you sorted :waving_hand:

now this “ripping machine” you’re talking about is totally unknown to me… dunno what its for and dunno why its there, but if you’re unable to write to that file system at all, then there’s something wrong with your permissions for sure.

so you’d need to fix that on os level first. you’re obviously using Ubuntu, so how did you try to mount that file system? is it mounted at boot time using fstab or is it mounted at runtime as user?

Thank you

The ripping machine I’m referring to is this: ARM

I was forgetting about how mounting worked and did it at runtime, now it’s added the drive to fstab and it showed as a drive in the system section of nextcloud. I still couldn’t move files onto that drive via the web interface so I tried removing it from the external storage section and adding it back, and now all the folders are empty and theres a lost+found folder that says pending and that the drive couldn’t be accessed on it. I had no important data on it so I’m fine to wipe and start again, I’ve waited a couple hours and nothing’s changed

edit: think the drive is wiped, nothing will play off of jellyfin now

so this is the first time you’ve mentioned jellyfin :exploding_head: we are a nextcloud forum and you’re mentioning things that have nothing to do with nextcloud…

yet you try to get all sorts of services running all at once?

do the basics → set priorities → set up each service correctly → mention all facts and don’t leave out information

be patient, there are folks here who will be able to help with these things. but lacking information and springing new services after each reply isn’t very helpful

The reason I hadn’t mentioned jellyfin is it’s not important to my issue. It was purely a way of me testing the files. ARM was mentioned because it has more relevance, as it was fundamental to me realising the external storage wasn’t working correctly

I may have exaggerated slightly, I’m very new to this. I have run nextcloud before but it was about 6 months back and after setting up just file storage I left that running so when it comes to configuring things, I’m at a very basic level of knowledge.

I did mess up by trying to get jellyfin sorted before knowing the external storage was working correctly, but in my defense, it looked like it was working absolutely fine until I went to move a file over manually and discovered the problem.

My issue is entirely with nextcloud and the external storage function, so if I ever mention another service, it’s purely to explain how I realised what’s going wrong, or explaining me testing a function, apologies for the misunderstanding

so could you answer those questions and give us insight into your AIO stack to see how that file system is mounted? especially the volumes section.

How would I go about checking those? As I said I’m very new. I’ve attached a couple pictures in case that provides any useful info

I don’t have direct experience with setups that use a separate mounted disk — I’m running AIO on a single large internal drive where all data live together — but in your case I’d focus on three things:

  1. Make sure the disk is properly mounted on the host (using /etc/fstab with correct options).

  2. Set the right permissions so the container can write to it:

    sudo chown -R 33:33 /mnt/external
    sudo chmod -R 750 /mnt/external
    
    
  3. Check that in your Docker Compose or docker run you have both:

    --env NEXTCLOUD_MOUNT="/mnt/external"
    --volume /mnt/external:/mnt/external
    
    

:warning: Note: This works only with internal SATA or NVMe drives. USB and network mounts are not supported by AIO for NEXTCLOUD_MOUNT.

1 Like

Looks like all I needed to do was set the right permissions! it seems to be working fine now, thank you so much!

2 Likes