Unable to upload any files

Details

Nextcloud version: replace me
Operating system and version: Debian 10
Apache version: 2.4.38
PHP version: 7.4.22

The issue:
I cannot upload any files to nextcloud. If I try to do so by clicking the “plus” icon and selecting through the file picker, I get a “an unknown error has occured” and nothing else.

If I try to upload a file by dragging and dropping, it uploads exactly 1.1 megabytes and stops after that. If the file is smaller than the 1.1mb, it does work fine.

If I try to upload a file through the windows client, it continues to try to upload, but doesn’t actually upload anything (no network activity).

When uploading through the browser, I get an error in my browser console, however it is too big to copy and paste. As soon as I open the error to copy, my browser crashes. I tried exporting, but it’s quite literally over 100k lines.
I do know that it’s a log coming from the “merged-index.js” file with the console log being created in this snipped:

fail: function(e, data) {
    var upload = self.getUpload(data);
    var status = null;
    if (upload) {
        status = upload.getResponseStatus();
    }
    self.log('fail', e, upload);

    self.removeUpload(upload);

    if (data.textStatus === 'abort' || data.errorThrown === 'abort') {
        self.showUploadCancelMessage();
    } else if (status === 412) {
        // file already exists
        self.showConflict(upload);
    } else if (status === 404) {
        // target folder does not exist any more
        OC.Notification.show(t('files', 'Target folder "{dir}" does not exist any more', {dir: upload.getFullPath()} ), {type: 'error'});
        self.cancelUploads();
    } else if (data.textStatus === 'notenoughspace') {
        // not enough space
        OC.Notification.show(t('files', 'Not enough free space'), {type: 'error'});
        self.cancelUploads();
    } else {
        // HTTP connection problem or other error
        var message = t('files', 'An unknown error has occurred');
        if (upload) {
            var response = upload.getResponse();
            if (response) {
                message = response.message;
            }
        }
        console.error(e, data, response)
        OC.Notification.show(message || data.errorThrown, {type: 'error'});
    }

    if (upload) {
        upload.fail();
    }
},

with the specific line being the final console.error statement:

console.error(e, data, response)

Would anyone know why this is happening? Nothing changed, no updates, no config changes, nothing., It just sort of happened.

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

Steps to replicate it:

  1. Upload a file through the website or through the windows client

The output of your Nextcloud log:
No logs whatsoever.

The output of your config.php file in /path/to/nextcloud:

<?php
$CONFIG = array (
  'instanceid' => '',
  'passwordsalt' => '',
  'secret' => '',
  'trusted_domains' =>
  array (
    0 => 'www.cloud.example.com',
  ),
  'datadirectory' => '/nextcloud',
  'dbtype' => 'mysql',
  'version' => '21.0.4.1',
  'overwrite.cli.url' => 'https://cloud.example.com',
  'overwritehost' => 'cloud.example.com',
  'htaccess.RewriteBase' => '/',
  'overwriteprotocol' => 'https',
  'dbname' => '',
  'dbhost' => '',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => '',
  'dbpassword' => '',
  'installed' => true,
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'twofactor_enforced' => 'false',
  'twofactor_enforced_groups' =>
  array (
  ),
  'twofactor_enforced_excluded_groups' =>
  array (
  ),
  'maintenance' => false,
  'mail_from_address' => '',
  'mail_smtpmode' => '',
  'mail_sendmailmode' => '',
  'mail_domain' => '',
  'mail_smtphost' => '',
  'mail_smtpport' => '',
  'mail_smtpsecure' => '',
  'mail_smtpauth' => 1,
  'mail_smtpauthtype' => '',
  'mail_smtpname' => 'l',
  'mail_smtppassword' => '',
  'theme' => '',
  'loglevel' => 2,
  'updater.release.channel' => 'stable',
  'default_phone_region' => '',
);

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

No logs entries are created that I could find

Nginx proxy conf:

server {
  set $forward_scheme http;
  set $server         "10.0.20.114";
  set $port           80;

  listen 8080;
listen [::]:8080;

listen 4443 ssl http2;
listen [::]:4443;

  server_name cloud.example.com;


  # Let's Encrypt SSL
  include conf.d/include/letsencrypt-acme-challenge.conf;
  include conf.d/include/ssl-ciphers.conf;
  ssl_certificate /etc/letsencrypt/live/npm-7/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/npm-7/privkey.pem;

  # HSTS (ngx_http_headers_module is required) (63072000 seconds = 2 years)
  add_header Strict-Transport-Security "max-age=63072000; preload" always;

    # Force SSL
    include conf.d/include/force-ssl.conf;

  access_log /data/logs/proxy-host-3_access.log proxy;
  error_log /data/logs/proxy-host-3_error.log warn;

client_max_body_size 0;

proxy_buffering off;
client_body_buffer_size 70m;
client_header_buffer_size 50k;
large_client_header_buffers 2 50k;

  location /.well-known/carddav {
    set              $upstream https://10.0.20.114:443;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Scheme $scheme;
    proxy_set_header X-Forwarded-Proto  $scheme;
    proxy_set_header X-Forwarded-For    $remote_addr;
    proxy_set_header X-Real-IP          $remote_addr;
    proxy_pass       $upstream;

    # Force SSL
    include conf.d/include/force-ssl.conf;

  # HSTS (ngx_http_headers_module is required) (63072000 seconds = 2 years)
  add_header Strict-Transport-Security "max-age=63072000; preload" always;

    return 301 $scheme://$host/remote.php/dav;
  }

  location /.well-known/caldav {
    set              $upstream https://10.0.20.114:443;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Scheme $scheme;
    proxy_set_header X-Forwarded-Proto  $scheme;
    proxy_set_header X-Forwarded-For    $remote_addr;
    proxy_set_header X-Real-IP          $remote_addr;
    proxy_pass       $upstream;

    # Force SSL
    include conf.d/include/force-ssl.conf;

  # HSTS (ngx_http_headers_module is required) (63072000 seconds = 2 years)
  add_header Strict-Transport-Security "max-age=63072000; preload" always;

    return 301 $scheme://$host/remote.php/dav;
  }

  location / {

  # HSTS (ngx_http_headers_module is required) (63072000 seconds = 2 years)
  add_header Strict-Transport-Security "max-age=63072000; preload" always;
    # Proxy!
    include conf.d/include/proxy.conf;
  }

  # Custom
  include /data/nginx/custom/server_proxy[.]conf;
}

I know this is an old ticket to reply to. I just figured this out on my system and thought I should add this if someone searches for it (like me today :smile: )

I have Nginx as a reverse proxy directing traffic to my Nextcloud install.

Nginx has a maximum setting under

client_max_body_size

of 1 mb.

My nginx.conf didn’t even have this setting there, which leads me to believe it is a default value.

This is located at /etc/nginx/nginx.conf on Ubuntu 20.04.

Under the html section of the nginx.conf, I added

client_max_body_size 1G;

Which makes it 1 GB upload maximum.

If you want it to be a MB value, then use M instead of G.