Insufficient storage message when using Nextcloud Desktop Client / Android App

Nextcloud version: Nextcloud Hub 3 (25.0.5)
Operating System: Ubuntu 22.04.2 LTS
nginx version: nginx/1.18.0 (Ubuntu)
PHP version: 8.1

I cannot upload files any more over a certain size. I get the insuffienct storage message (see message snippet below). But my user’s upload folder ($nextcloud_data/$my_user/uploads) has about 150 GB free space and is on an ext4 partition without quotas applied.

The output of your Nextcloud log:

{"reqId":"nIS2Hh4ZCpNpMz","level":3,"time":"2023-03-31T12:04:28+00:00","remoteAddr":"IP_ADDR","user":"lightonflux","app":"webdav","method":"MOVE","url":"/remote.php/dav/uploads/lightonflux/567002973/.file","message":"Insufficient space in /Project/Videos/lightonflux, 27136230 required, 343725 available","userAgent":"Mozilla/5.0 (Linux) mirall/3.7.4git (Nextcloud, fedora-6.2.8-200.fc37.x86_64 ClientArchitecture: x86_64 OsArchitecture: x86_64)","version":"25.0.5.1","exception":{"Exception":"Sabre\\DAV\\Exception\\InsufficientStorage","Message":"Insufficient space in /Project/Videos/lightonflux, 27136230 required, 343725 available","Code":0,"Trace":[{"file":"/var/www/nextcloud/apps/dav/lib/Connector/Sabre/QuotaPlugin.php","line":142,"function":"checkQuota","class":"OCA\\DAV\\Connector\\Sabre\\QuotaPlugin","type":"->"},{"file":"/var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"beforeMove","class":"OCA\\DAV\\Connector\\Sabre\\QuotaPlugin","type":"->"},{"file":"/var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php","line":603,"function":"emit","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"httpMove","class":"Sabre\\DAV\\CorePlugin","type":"->"},{"file":"/var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":472,"function":"emit","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/nextcloud/apps/dav/lib/Server.php","line":360,"function":"exec","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/nextcloud/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\\DAV\\Server","type":"->"},{"file":"/var/www/nextcloud/remote.php","line":171,"args":["/var/www/nextcloud/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/var/www/nextcloud/apps/dav/lib/Connector/Sabre/QuotaPlugin.php","Line":210,"message":"Insufficient space in /Project/Videos/lightonflux, 27136230 required, 343725 available","exception":{},"CustomMessage":"Insufficient space in /Project/Videos/lightonflux, 27136230 required, 343725 available"}}

php.ini:

$ grep ^[^\;] php.ini                                                                                                                         
[PHP]                                                                                                                                                                        
engine = On                                                                                                                                                                  
short_open_tag = Off                                                                                                                                                         
precision = 14                                                                                                                                                               
output_buffering = 4096                                                                                                                                                      
zlib.output_compression = Off                                                                                                                                                
implicit_flush = Off                                                                                                                                                         
unserialize_callback_func =                                                                                                                                                  
serialize_precision = -1                                                                                                                                                     
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,p$
ntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_ex$
c,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,                                                                                                     
disable_classes =                                                                                                                                                            
zend.enable_gc = On                                                                                                                                                          
zend.exception_ignore_args = On                                                                                                                                              
expose_php = Off                                                                                                                                                             
max_execution_time = 300                                                                                                                                                     
max_input_time = 300
memory_limit = 512M
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 16G
auto_globals_jit = On                                                                                                                                               [69/1901]
post_max_size = 16G                                                                                                                                                          
auto_prepend_file =                                                                                                                                                          
auto_append_file =                                                                                                                                                           
default_mimetype = "text/html"                                                                                                                                               
default_charset = "UTF-8"                                                                                                                                                    
doc_root =                                                                                                                                                                   
user_dir =                                                                                                                                                                   
enable_dl = Off                                                                                                                                                              
file_uploads = On                                                                                                                                                            
upload_max_filesize = 16G                                                                                                                                                    
max_file_uploads = 20                                                                                                                                                        
allow_url_fopen = On                                                                                                                                                         
allow_url_include = Off                                                                                                                                                      
default_socket_timeout = 60                                                                                                                                                  
[CLI Server]                                                                                                                                                                 
cli_server.color = On                                                                                                                                                        
[Date]                                                                                                                                                                       
[filter]                                                                                                                                                                     
[iconv]                                                                                                                                                                      
[imap]                                                                                                                                                                       
[intl]                                                                                                                                                                       
[sqlite3]                                                                                                                                                                    
[Pcre]                                                                                                                                                                       
[Pdo]                                                                                                                                                                        
[Pdo_mysql]                                                                                                                                                                  
pdo_mysql.default_socket=                                                                                                                                                    
[Phar]              
[mail function]    
SMTP = localhost                                                                                                                                                    [40/1901]
smtp_port = 25
mail.add_x_header = Off
[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off
[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off
[OCI8]
[PostgreSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
[bcmath]
bcmath.scale = 0
[browscap]
[Session]
session.save_handler = files
session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID

session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.cookie_samesite =
session.serialize_handler = php
session.gc_probability = 0
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.sid_length = 26
session.trans_sid_tags = "a=href,area=href,frame=src,form="
session.sid_bits_per_character = 5
[Assertion]
zend.assertions = -1
[COM]
[mbstring]
[gd]
[exif]
[Tidy]
tidy.clean_output = Off
[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5
[sysvshm]
[ldap]
ldap.max_links = -1
[dba]
[opcache]
opcache.interned_strings_buffer=32
opcache.revalidate_freq=60
opcache.save_comments=1
[curl]
[openssl]
[ffi]

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

<?php
$CONFIG = array (
  'instanceid' => 'xxxxxxxxxxxxxx',
  'passwordsalt' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
  'secret' => 'xxxxxxxxxxxxxxxxxxx',
  'trusted_domains' =>
  array (
    0 => '127.0.0.1:80',
    1 => 'xxxxxxxxxx',
    2 => 'nextcloud',
    3 => 'xxxxxxxxxxxxx',
    4 => 'xxxxxxxxxxxxxxxx',
    5 => 'xxxxxxxxxx',
    6 => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  ),
  'memcache.distributed' => '\\OC\\Memcache\\Redis',
  'redis' =>
  array (
    'host' => '127.0.0.1',
    'port' => 6379,
  ),
  'memcache.locking' => '\\OC\\Memcache\\Redis',
),
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'memcache.local' => '\\OC\\Memcache\\Redis',
  'datadirectory' => '/nextcloud-data',
  'dbtype' => 'mysql',
  'version' => '25.0.5.1',
  'overwrite.cli.url' => 'xxxxxxxxxxxxxxxxxxxxxx',
  'trusted_proxies' => 'xxxxxxxxxxxxxxxx',
  'dbname' => 'nextcloud',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'nextcloud',
  'dbpassword' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  'installed' => true,
  'maintenance' => false,
  'mysql.utf8mb4' => true,
  'mail_smtpmode' => 'smtp',
  'mail_smtpsecure' => 'tls',
  'mail_sendmailmode' => 'smtp',
  'default_phone_region' => 'DE',
  'default_language' => 'de',
  'theme' => '',
  'loglevel' => 2,
  'mail_from_address' => 'nextcloud',
  'mail_domain' => 'xxxxxxxxxxxxxxxxxxxxxxx',
  'mail_smtpauth' => 1,
  'mail_smtpname' => 'xxxxxxxxxxxxxxxxxxxxxx',
  'mail_smtppassword' => 'xxxxxxxxxxxxxxxxxx',
  'mail_smtphost' => 'xxxxxxxxxxxxxxxxxxx',
  'app_install_overwrite' => 
  array (
    0 => 'bruteforcesettings',
    1 => 'twofactor_u2f',
  ),
  'updater.release.channel' => 'stable',
  'trashbin_retention_obligation' => 'auto, 30',
  'preview_max_x' => '2048',
  'preview_max_y' => '2048',
  'updater.secret' => 'xxxxxxxx',
);

The instance is behind an neginx reverse proxy on the same host with the same resources.

I cannot see to find which device only has “343725” bytes free space and produces this error. It is not the data partition with the nextcloud data and upload folder (>145GB!) or RAM as there are about 30GB unused. Thankful for any help and pointers.

Turns out the folder was shared from another user. Only the web interface displayed which user the storage belonged to.

Relevant issue: [Bug]: Insufficient Storage Error does not name user (nextcloud.log, android, desktop) · Issue #37519 · nextcloud/server · GitHub