External storage support cannot be enabled

[/details]

Nextcloud version : 22.0
Operating system and version: docker nextcloud fpm-alpine
PHP version : 7.4
I use my own docker customized image
https://hub.docker.com/r/gpopesc/nc-nginx-app
https://hub.docker.com/r/gpopesc/nc-nginx-web

  • cron + redis

The issue you are facing:
I tried to setup the external storage support for samba share from my server, I could setup the parameters, then when I pressed files menu to see samba share, I got an internal server error.
I managed to disable the extension external storage support with OCC command and now I can access my server.

When I tried to re-enable, I got the same error and in extensions I get:
Error: This app cannot be enabled because it makes the server unstable
Capture

I tried to overwrite apps/files_external or 3rdparty/icewind with older versions or reinstall them from nexcloud server, without any luck.

Probably it is something wrong with my settings and I need to reset parameters in external shares , then start over.

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

The output of your Nextcloud log in Admin > Logging:

{"reqId":"ydiedzBEUsOwmc07iQwb","level":3,"time":"2021-07-26T20:42:14+00:00","remoteAddr":"192.168.1.100","user":"viorelp","app":"index","method":"GET","url":"/apps/theming/icon?v=3","message":"Argument 1 passed to Icewind\\SMB\\BasicAuth::__construct() must be of the type string, null given, called in /var/www/html/apps/files_external/lib/Lib/Backend/SMB.php on line 82","userAgent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0","version":"22.0.0.11","exception":{"Exception":"Exception","Message":"Argument 1 passed to Icewind\\SMB\\BasicAuth::__construct() must be of the type string, null given, called in /var/www/html/apps/files_external/lib/Lib/Backend/SMB.php on line 82","Code":0,"Trace":[{"file":"/var/www/html/lib/private/AppFramework/App.php","line":156,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Theming\\Controller\\IconController"},"getTouchIcon"]},{"file":"/var/www/html/lib/private/Route/Router.php","line":301,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OCA\\Theming\\Controller\\IconController","getTouchIcon",{"__class__":"OC\\AppFramework\\DependencyInjection\\DIContainer"},{"app":"core","_route":"theming.Icon.getTouchIcon"}]},{"file":"/var/www/html/lib/base.php","line":1000,"function":"match","class":"OC\\Route\\Router","type":"->","args":["/apps/theming/icon"]},{"file":"/var/www/html/index.php","line":36,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"/var/www/html/lib/private/AppFramework/Http/Dispatcher.php","Line":158,"Previous":{"Exception":"TypeError","Message":"Argument 1 passed to Icewind\\SMB\\BasicAuth::__construct() must be of the type string, null given, called in /var/www/html/apps/files_external/lib/Lib/Backend/SMB.php on line 82","Code":0,"Trace":[{"file":"/var/www/html/apps/files_external/lib/Lib/Backend/SMB.php","line":82,"function":"__construct","class":"Icewind\\SMB\\BasicAuth","type":"->","args":[null,"",null]},{"file":"/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php","line":95,"function":"manipulateStorageConfig","class":"OCA\\Files_External\\Lib\\Backend\\SMB","type":"->","args":["*** sensitive parameter replaced ***",{"__class__":"OC\\User\\User"}]},{"file":"/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php","line":132,"function":"prepareStorageConfig","class":"OCA\\Files_External\\Config\\ConfigAdapter","type":"->","args":["*** sensitive parameter replaced ***",{"__class__":"OC\\User\\User"}]},{"function":"OCA\\Files_External\\Config\\{closure}","class":"OCA\\Files_External\\Config\\ConfigAdapter","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php","line":130,"function":"array_map","args":[{"__class__":"Closure"},{"3":{"__class__":"OCA\\Files_External\\Lib\\StorageConfig"},"4":{"__class__":"OCA\\Files_External\\Lib\\StorageConfig"},"5":{"__class__":"OCA\\Files_External\\Lib\\StorageConfig"}}]},{"file":"/var/www/html/lib/private/Files/Config/MountProviderCollection.php","line":108,"function":"getMountsForUser","class":"OCA\\Files_External\\Config\\ConfigAdapter","type":"->","args":[{"__class__":"OC\\User\\User"},{"__class__":"OC\\Files\\Storage\\StorageFactory"}]},{"file":"/var/www/html/lib/private/Files/Filesystem.php","line":429,"function":"addMountForUser","class":"OC\\Files\\Config\\MountProviderCollection","type":"->","args":[{"__class__":"OC\\User\\User"},{"__class__":"OC\\Files\\Mount\\Manager"}]},{"file":"/var/www/html/lib/private/Files/Filesystem.php","line":354,"function":"initMountPoints","class":"OC\\Files\\Filesystem","type":"::","args":["viorelp"]},{"file":"/var/www/html/lib/private/legacy/OC_Util.php","line":325,"function":"init","class":"OC\\Files\\Filesystem","type":"::","args":["viorelp","/viorelp/files"]},{"file":"/var/www/html/lib/private/Files/Mount/Manager.php","line":91,"function":"setupFS","class":"OC_Util","type":"::","args":[]},{"file":"/var/www/html/lib/private/Files/View.php","line":1385,"function":"find","class":"OC\\Files\\Mount\\Manager","type":"->","args":["/appdata_ocu0xnczb28o/theming/images"]},{"file":"/var/www/html/lib/private/Files/Node/Root.php","line":200,"function":"getFileInfo","class":"OC\\Files\\View","type":"->","args":["/appdata_ocu0xnczb28o/theming/images"]},{"function":"get","class":"OC\\Files\\Node\\Root","type":"->","args":["/appdata_ocu0xnczb28o/theming/images"]},{"file":"/var/www/html/lib/private/Files/Node/LazyFolder.php","line":65,"function":"call_user_func_array","args":[[{"__class__":"OC\\Files\\Node\\Root"},"get"],["appdata_ocu0xnczb28o/theming/images"]]},{"file":"/var/www/html/lib/private/Files/Node/LazyFolder.php","line":142,"function":"__call","class":"OC\\Files\\Node\\LazyFolder","type":"->","args":["get",["appdata_ocu0xnczb28o/theming/images"]]},{"file":"/var/www/html/lib/private/Files/AppData/AppData.php","line":141,"function":"get","class":"OC\\Files\\Node\\LazyFolder","type":"->","args":["appdata_ocu0xnczb28o/theming/images"]},{"file":"/var/www/html/apps/theming/lib/ImageManager.php","line":110,"function":"getFolder","class":"OC\\Files\\AppData\\AppData","type":"->","args":["images"]},{"file":"/var/www/html/apps/theming/lib/Controller/IconController.php","line":157,"function":"getImage","class":"OCA\\Theming\\ImageManager","type":"->","args":["favicon"]},{"file":"/var/www/html/lib/private/AppFramework/Http/Dispatcher.php","line":217,"function":"getTouchIcon","class":"OCA\\Theming\\Controller\\IconController","type":"->","args":["core"]},{"file":"/var/www/html/lib/private/AppFramework/Http/Dispatcher.php","line":126,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Theming\\Controller\\IconController"},"getTouchIcon"]},{"file":"/var/www/html/lib/private/AppFramework/App.php","line":156,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Theming\\Controller\\IconController"},"getTouchIcon"]},{"file":"/var/www/html/lib/private/Route/Router.php","line":301,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OCA\\Theming\\Controller\\IconController","getTouchIcon",{"__class__":"OC\\AppFramework\\DependencyInjection\\DIContainer"},{"app":"core","_route":"theming.Icon.getTouchIcon"}]},{"file":"/var/www/html/lib/base.php","line":1000,"function":"match","class":"OC\\Route\\Router","type":"->","args":["/apps/theming/icon"]},{"file":"/var/www/html/index.php","line":36,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"/var/www/html/apps/files_external/3rdparty/icewind/smb/src/BasicAuth.php","Line":32},"CustomMessage":"--"},"id":"60ff1f1c26dbd"}

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

<?php
$CONFIG = array (
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'apps_paths' => 
  array (
    0 => 
    array (
      'path' => '/var/www/html/apps',
      'url' => '/apps',
      'writable' => false,
    ),
    1 => 
    array (
      'path' => '/var/www/html/custom_apps',
      'url' => '/custom_apps',
      'writable' => true,
    ),
  ),
  'memcache.distributed' => '\\OC\\Memcache\\Redis',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' => 
  array (
    'host' => 'redis',
    'password' => '',
    'port' => 6379,
  ),
  'instanceid' => 'fff',
  'passwordsalt' => 'fff',
  'secret' => 'k',
  'trusted_domains' => 
  array (
    0 => '192.168.1.100:port',
    1 => 'mysite',
  ),
  'datadirectory' => '/var/www/html/data',
  'dbtype' => 'mysql',
  'version' => '22.0.0.11',
  'overwritehost' => 'mysite',
  'overwriteprotocol' => 'https',
  'overwrite.cli.url' => 'mysite',
  'dbname' => 'nextcloud_nginx',
  'dbhost' => 'ip',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'root',
  'dbpassword' => 'pass',
  'installed' => true,
  'allow_local_remote_servers' => true,
  'app_install_overwrite' => 
  array (
    0 => 'occweb',
    1 => 'dropit',
    2 => 'files_external_ipfs',
    3 => 'rainloop',
    4 => 'flowupload',
    5 => 'uploaddetails',
    6 => 'weather',
    7 => 'breezedark',
    8 => 'deck',
    9 => 'flow_notifications',
    10 => 'jitsi',
    11 => 'previewgenerator',
    12 => 'twofactor_email',
    13 => 'twofactor_webauthn',
    14 => 'spreed',
    15 => 'quicknotes',
    16 => 'files_mindmap',
    17 => 'workflow_script',
    18 => 'files_external',
  ),
  'trashbin_retention_obligation' => 'auto, 7',
  'versions_retention_obligation' => '30, auto',

  'loglevel' => 0,
  'maintenance' => false,
  'theme' => '',
  'default_phone_region' => 'RO',
); 

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

2021-07-26 18:27:29,470 CRIT Supervisor is running as root.  Privileges were not dropped because no user is specified in the config file.  If you intend to run as root, you can set user=root in the config file to avoid this message.

solved,
I forgot about SQL tables. I truncate all 4 tables related with oc_external_files and when I enabled again the plugin, the error disappear

1 Like

I have the same problem
Please give me more information about SQL and I will solve the problem.
Thanks.

Hi, please can you share a guide how to solve with SQL table?

My answer was 3 years ago…so I try to remember: you need to login to your nextcloud database using adminer or phpMyAdmin or other mysql tools, then select your nexcloud database and run follwing sql commands:

truncate oc_external_mounts;
truncate oc_external_options;
truncate oc_external_config;
truncate oc_external_applicable;

After that enable the external storage plugin. It should work.

truncate