Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

SFTP external storage cannot read RSA private key entered in the web form: “Unable to read key”

Abierto Apto para principiantes
#64,702 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
75/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript, nginx, php, postgresql
Área
backend

Línea de trabajo

Examina el formulario frontend de la app files_external para el almacenamiento SFTP, probablemente en apps/files_external/lib/Controller/GlobalStoragesController.php o una plantilla relacionada. El campo de entrada para la clave privada debe cambiarse de un input a un textarea para preservar los saltos de línea. Prueba creando un almacenamiento externo SFTP con una clave RSA a través de la interfaz de usuario y verifica que la clave se almacene correctamente en la base de datos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

0. Needs triage 35-feedback bug feature: external storage
⚠️ This issue respects the following points: ⚠️
  • This is not a troubleshooting question, general support matter, or webserver/proxy problem, but likely a bug (if unsure, ask the Community Help Forum).
  • This issue is not already reported on Github OR solved at the Community Help Forum (I've searched!).
  • I'm using a maintained major version of Nextcloud Server and tested against the latest patch level. (Supported major versions and current patch levels).
  • I agree to follow Nextcloud's Code of Conduct.
  • I've tried my best to provide clear reproduction steps that someone unfamiliar with this bug could use to reproduce it.
Bug description

I'm using files_external using the RSA private key authentication method.

However, when trying to use it after the update I'm getting the error Unable to read key from phpseclib3

I believe the problem is that the private key is stored without its enters. This is because the form for inserting the private key uses an input element and not a textarea element, so the enters of the key will be lost.

Setting the private key using: ./occ -vvv files_external:config --value-from-file <mount-id> private_key ./key.pem preserves the enters and fixes the issue.

Steps to reproduce
  1. Create a new external storage
  2. Select SFTP as the storage type
  3. And RSA private key as the authentication method
  4. Set up the rest of the form further
  5. Try to open this external storage folder
  6. Check the logs and see the Unable to read key error.
Expected behavior

It should store the private key correctly so it works.

Nextcloud Server version

35

Operating system

Debian/Ubuntu

PHP engine version

PHP 8.5

Web server

Nginx

Database engine version

PostgreSQL

Is this bug present after an update or on a fresh install?

Upgraded to a MAJOR version (ex. 31 to 32)

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

What user-backends are you using?
  • Default user-backend (database)
  • LDAP/ Active Directory
  • SSO - SAML
  • Other
Configuration report
{
    "system": {
        "overwriteprotocol": "https",
        "htaccess.RewriteBase": "\/",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "apps_paths": [
            {
                "path": "\/var\/www\/html\/apps",
                "url": "\/apps",
                "writable": false
            },
            {
                "path": "\/var\/www\/html\/custom_apps",
                "url": "\/custom_apps",
                "writable": true
            }
        ],
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
        ],
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "allow_local_remote_servers": true,
        "default_phone_region": "NL",
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "pgsql",
        "version": "35.0.0.10",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "theme": "",
        "log_type": "file",
        "logfile": "\/tmp\/nextcloud.log",
        "loglevel": 2,
        "maintenance": false,
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpmode": "smtp",
        "mail_sendmailmode": "smtp",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpauth": 1,
        "mail_smtpport": "587",
        "mail_smtpauthtype": "PLAIN",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "has_rebuilt_cache": true,
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "password": "***REMOVED SENSITIVE VALUE***",
            "port": 6379
        },
        "maintenance_window_start": 1,
        "serverid": "0"
    }
}
List of activated Apps
Enabled:
  - activity: 8.0.0
  - admin_audit: 2.0.0-dev.0
  - app_api: 35.0.0
  - appstore: 2.0.0-dev.0
  - bruteforcesettings: 8.0.0
  - calendar: 6.6.1
  - circles: 35.0.0
  - cloud_federation_api: 2.0.0-dev.0
  - comments: 2.0.0-dev.0
  - contacts: 8.9.0
  - contactsinteraction: 2.0.0-dev.0
  - dashboard: 8.0.0-dev.0
  - dav: 2.0.0-dev.1
  - federatedfilesharing: 2.0.0-dev.1
  - federation: 2.0.0-dev.0
  - files: 3.0.0-dev.0
  - files_downloadlimit: 5.3.0
  - files_external: 2.0.0-dev.0
  - files_lock: 35.0.0
  - files_pdfviewer: 8.0.0
  - files_reminders: 2.0.0-dev.0
  - files_sharing: 2.0.0-dev.1
  - files_trashbin: 2.0.0-dev.0
  - files_versions: 2.0.0-dev.0
  - firstrunwizard: 8.0.0
  - logreader: 8.0.0
  - lookup_server_connector: 2.0.0-dev.0
  - nextcloud_announcements: 7.0.0
  - notes: 6.1.0
  - notifications: 8.0.0
  - oauth2: 2.0.0-dev.0
  - office: 1.1.0
  - password_policy: 7.0.0
  - photos: 8.0.0
  - privacy: 7.0.0
  - profile: 2.0.0-dev.0
  - provisioning_api: 2.0.0-dev.0
  - recommendations: 8.0.0
  - related_resources: 6.0.0
  - richdocuments: 12.0.0
  - serverinfo: 7.0.0
  - settings: 2.0.0-dev.0
  - sharebymail: 2.0.0-dev.0
  - sharing: 1.0.4
  - support: 7.0.0
  - survey_client: 7.0.0
  - suspicious_login: 13.0.0
  - systemtags: 2.0.0-dev.0
  - text: 9.0.0
  - theming: 3.0.0-dev.0
  - twofactor_backupcodes: 2.0.0-dev.0
  - twofactor_nextcloud_notification: 9.0.0
  - twofactor_totp: 17.1.0
  - twofactor_webauthn: 2.7.1
  - updatenotification: 2.0.0-dev.0
  - user_oidc: 8.11.0
  - user_status: 2.0.0-dev.0
  - viewer: 8.0.0
  - weather_status: 2.0.0-dev.0
  - webhook_listeners: 2.0.0-dev.0
  - workflowengine: 3.0.0-dev.0
Disabled:
  - carnet: 0.25.13 (installed 0.25.13)
  - encryption: 3.0.0-dev.0
  - files_antivirus: 6.3.0 (installed 6.3.0)
  - previewgenerator: 5.13.0 (installed 5.13.0)
  - sharelisting: 1.3.0 (installed 1.3.0)
  - tasks: 0.18.0 (installed 0.18.0)
  - user_ldap: 2.0.0-dev.0
Nextcloud Signing status
No errors have been found.
Nextcloud Logs
{
	"reqId": "hzaIhqkFWcPeo0nTPRi7",
	"level": 2,
	"time": "2026-09-23T18:48:07+00:00",
	"remoteAddr": "2001:4c3c:7300:48de:4691:8e78:5b95:1791",
	"user": "jeroen",
	"app": "no app in context",
	"method": "PROPFIND",
	"url": "/remote.php/dav/files/jeroen/",
	"scriptName": "/remote.php",
	"message": "Error while getting quota info, using root quota",
	"userAgent": "Mozilla/5.0 (X11; Linux x86_64; rv:156.0) Gecko/20100101 Firefox/156.0",
	"version": "35.0.0.10",
	"exception": {
		"Exception": "OCP\\Files\\StorageNotAvailableException",
		"Message": "Unable to read key",
		"Code": 0,
		"Trace": [
			{
				"file": "/var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php",
				"line": 323,
				"function": "getAvailability",
				"class": "OC\\Files\\Storage\\FailedStorage",
				"type": "->",
				"args": []
			},
			{
				"file": "/var/www/html/lib/private/Files/Storage/Wrapper/Availability.php",
				"line": 61,
				"function": "getAvailability",
				"class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
				"type": "->",
				"args": []
			},
			{
				"file": "/var/www/html/lib/private/Files/Storage/Wrapper/Availability.php",
				"line": 74,
				"function": "isAvailable",
				"class": "OC\\Files\\Storage\\Wrapper\\Availability",
				"type": "->",
				"args": []
			},
			{
				"file": "/var/www/html/lib/private/Files/Storage/Wrapper/Availability.php",
				"line": 83,
				"function": "checkAvailability",
				"class": "OC\\Files\\Storage\\Wrapper\\Availability",
				"type": "->",
				"args": []
			},
			{
				"file": "/var/www/html/lib/private/Files/Storage/Wrapper/Availability.php",
				"line": 217,
				"function": "handleAvailability",
				"class": "OC\\Files\\Storage\\Wrapper\\Availability",
				"type": "->",
				"args": [
					"free_space",
					""
				]
			},
			{
				"file": "/var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php",
				"line": 186,
				"function": "free_space",
				"class": "OC\\Files\\Storage\\Wrapper\\Availability",
				"type": "->",
				"args": [
					""
				]
			},
			{
				"file": "/var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php",
				"line": 186,
				"function": "free_space",
				"class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
				"type": "->",
				"args": [
					""
				]
			},
			{
				"file": "/var/www/html/lib/private/legacy/OC_Helper.php",
				"line": 231,
				"function": "free_space",
				"class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
				"type": "->",
				"args": [
					""
				]
			},
			{
				"file": "/var/www/html/apps/dav/lib/Connector/Sabre/Directory.php",
				"line": 349,
				"function": "getStorageInfo",
				"class": "OC_Helper",
				"type": "::",
				"args": [
					"/home-Jeroen",
					{
						"__class__": "OC\\Files\\Node\\Folder"
					},
					false
				]
			},
			{
				"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
				"line": 770,
				"function": "getQuotaInfo",
				"class": "OCA\\DAV\\Connector\\Sabre\\Directory",
				"type": "->",
				"args": []
			},
			{
				"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/PropFind.php",
				"line": 95,
				"function": "{closure:Sabre\\DAV\\CorePlugin::propFind():768}",
				"class": "Sabre\\DAV\\CorePlugin",
				"type": "->",
				"args": [
					"*** sensitive parameters replaced ***"
				]
			},
			{
				"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
				"line": 768,
				"function": "handle",
				"class": "Sabre\\DAV\\PropFind",
				"type": "->",
				"args": [
					"{DAV:}quota-available-bytes",
					{
						"__class__": "Closure"
					}
				]
			},
			{
				"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
				"line": 89,
				"function": "propFind",
				"class": "Sabre\\DAV\\CorePlugin",
				"type": "->",
				"args": [
					{
						"__class__": "Sabre\\DAV\\PropFind"
					},
					{
						"__class__": "OCA\\DAV\\Connector\\Sabre\\Directory"
					}
				]
			},
			{
				"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
				"line": 1052,
				"function": "emit",
				"class": "Sabre\\DAV\\Server",
				"type": "->",
				"args": [
					"propFind",
					[
						{
							"__class__": "Sabre\\DAV\\PropFind"
						},
						{
							"__class__": "OCA\\DAV\\Connector\\Sabre\\Directory"
						}
					]
				]
			},
			{
				"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
				"line": 984,
				"function": "getPropertiesByNode",
				"class": "Sabre\\DAV\\Server",
				"type": "->",
				"args": [
					{
						"__class__": "Sabre\\DAV\\PropFind"
					},
					{
						"__class__": "OCA\\DAV\\Connector\\Sabre\\Directory"
					}
				]
			},
			{
				"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
				"line": 1664,
				"function": "getPropertiesIteratorForPath",
				"class": "Sabre\\DAV\\Server",
				"type": "->",
				"args": [
					"files/jeroen",
					[
						"{DAV:}getcontentlength",
						"{DAV:}getcontenttype",
						"{DAV:}getetag",
						"{DAV:}getlastmodified",
						"{DAV:}creationdate",
						"And 33 more entries, set log level to debug to see all entries"
					],
					1
				]
			},
			{
				"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
				"line": 1649,
				"function": "writeMultiStatus",
				"class": "Sabre\\DAV\\Server",
				"type": "->",
				"args": [
					{
						"__class__": "Sabre\\Xml\\Writer",
						"elementMap": [],
						"contextUri": "/remote.php/dav/",
						"namespaceMap": {
							"DAV:": "d",
							"http://sabredav.org/ns": "s",
							"http://owncloud.org/ns": "oc",
							"http://nextcloud.org/ns": "nc"
						},
						"classMap": []
					},
					{
						"__class__": "Generator"
					},
					false
				]
			},
			{
				"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
				"line": 346,
				"function": "generateMultiStatus",
				"class": "Sabre\\DAV\\Server",
				"type": "->",
				"args": [
					{
						"__class__": "Generator"
					},
					false
				]
			},
			{
				"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
				"line": 89,
				"function": "httpPropFind",
				"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:PROPFIND",
					[
						{
							"__class__": "Sabre\\HTTP\\Request"
						},
						{
							"__class__": "Sabre\\HTTP\\Response"
						}
					]
				]
			},
			{
				"file": "/var/www/html/apps/dav/lib/Connector/Sabre/Server.php",
				"line": 216,
				"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": 436,
				"function": "start",
				"class": "OCA\\DAV\\Connector\\Sabre\\Server",
				"type": "->",
				"args": []
			},
			{
				"file": "/var/www/html/apps/dav/appinfo/v2/remote.php",
				"line": 25,
				"function": "exec",
				"class": "OCA\\DAV\\Server",
				"type": "->",
				"args": []
			},
			{
				"file": "/var/www/html/remote.php",
				"line": 158,
				"args": [
					"/var/www/html/apps/dav/appinfo/v2/remote.php"
				],
				"function": "require"
			},
			{
				"file": "/var/www/html/lib/OC.php",
				"line": 1397,
				"function": "{closure:/var/www/html/remote.php:102}",
				"args": [
					"*** sensitive parameters replaced ***"
				]
			},
			{
				"file": "/var/www/html/remote.php",
				"line": 102,
				"function": "handleRequests",
				"class": "OC",
				"type": "::",
				"args": [
					{
						"__class__": "Closure"
					}
				]
			}
		],
		"File": "/var/www/html/lib/private/Files/Storage/FailedStorage.php",
		"Line": 225,
		"Hint": "Storage is temporarily not available",
		"Previous": {
			"Exception": "OCP\\Files\\StorageNotAvailableException",
			"Message": "Unable to read key",
			"Code": 0,
			"Trace": [
				{
					"file": "/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php",
					"line": 124,
					"function": "getAvailability",
					"class": "OC\\Files\\Storage\\FailedStorage",
					"type": "->",
					"args": []
				},
				{
					"function": "{closure:OCA\\Files_External\\Config\\ConfigAdapter::getAvailableStorages():122}",
					"class": "OCA\\Files_External\\Config\\ConfigAdapter",
					"type": "->",
					"args": [
						"*** sensitive parameters replaced ***"
					]
				},
				{
					"file": "/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php",
					"line": 122,
					"function": "array_map",
					"args": [
						{
							"__class__": "Closure"
						},
						{
							"6": "*** sensitive parameters replaced ***",
							"7": "*** sensitive parameters replaced ***",
							"8": "*** sensitive parameters replaced ***",
							"14": "*** sensitive parameters replaced ***"
						},
						{
							"6": "*** sensitive parameters replaced ***",
							"7": "*** sensitive parameters replaced ***",
							"8": "*** sensitive parameters replaced ***",
							"14": "*** sensitive parameters replaced ***"
						}
					]
				},
				{
					"file": "/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php",
					"line": 144,
					"function": "getAvailableStorages",
					"class": "OCA\\Files_External\\Config\\ConfigAdapter",
					"type": "->",
					"args": [
						{
							"6": "*** sensitive parameters replaced ***",
							"7": "*** sensitive parameters replaced ***",
							"8": "*** sensitive parameters replaced ***",
							"14": "*** sensitive parameters replaced ***"
						},
						{
							"__class__": "OC\\User\\User"
						}
					]
				},
				{
					"file": "/var/www/html/lib/private/Files/Config/MountProviderCollection.php",
					"line": 62,
					"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/Config/MountProviderCollection.php",
					"line": 177,
					"function": "getMountsFromProvider",
					"class": "OC\\Files\\Config\\MountProviderCollection",
					"type": "->",
					"args": [
						{
							"__class__": "OCA\\Files_External\\Config\\ConfigAdapter"
						},
						{
							"__class__": "OC\\User\\User"
						},
						{
							"__class__": "OC\\Files\\Storage\\StorageFactory"
						}
					]
				},
				{
					"file": "/var/www/html/lib/private/Files/SetupManager.php",
					"line": 290,
					"function": "addMountForUser",
					"class": "OC\\Files\\Config\\MountProviderCollection",
					"type": "->",
					"args": [
						{
							"__class__": "OC\\User\\User"
						},
						{
							"__class__": "OC\\Files\\Mount\\Manager"
						},
						{
							"__class__": "Closure"
						}
					]
				},
				{
					"file": "/var/www/html/lib/private/Files/SetupManager.php",
					"line": 415,
					"function": "{closure:OC\\Files\\SetupManager::setupForUser():289}",
					"class": "OC\\Files\\SetupManager",
					"type": "->",
					"args": [
						"*** sensitive parameters replaced ***"
					]
				},
				{
					"file": "/var/www/html/lib/private/Files/SetupManager.php",
					"line": 289,
					"function": "setupForUserWith",
					"class": "OC\\Files\\SetupManager",
					"type": "->",
					"args": [
						{
							"__class__": "OC\\User\\User"
						},
						{
							"__class__": "Closure"
						}
					]
				},
				{
					"file": "/var/www/html/lib/private/Files/SetupManager.php",
					"line": 501,
					"function": "setupForUser",
					"class": "OC\\Files\\SetupManager",
					"type": "->",
					"args": [
						{
							"__class__": "OC\\User\\User"
						}
					]
				},
				{
					"file": "/var/www/html/lib/private/Files/Mount/Manager.php",
					"line": 116,
					"function": "setupForPath",
					"class": "OC\\Files\\SetupManager",
					"type": "->",
					"args": [
						"/jeroen/files",
						true
					]
				},
				{
					"file": "/var/www/html/lib/private/Files/View.php",
					"line": 1577,
					"function": "findIn",
					"class": "OC\\Files\\Mount\\Manager",
					"type": "->",
					"args": [
						"/jeroen/files"
					]
				},
				{
					"file": "/var/www/html/lib/private/Files/Node/Folder.php",
					"line": 89,
					"function": "getDirectoryContent",
					"class": "OC\\Files\\View",
					"type": "->",
					"args": [
						"/jeroen/files",
						null,
						{
							"__class__": "OC\\Files\\Node\\LazyUserFolder"
						}
					]
				},
				{
					"file": "/var/www/html/apps/dav/lib/Connector/Sabre/Directory.php",
					"line": 267,
					"function": "getDirectoryListing",
					"class": "OC\\Files\\Node\\Folder",
					"type": "->",
					"args": []
				},
				{
					"file": "/var/www/html/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php",
					"line": 59,
					"function": "getChildren",
					"class": "OCA\\DAV\\Connector\\Sabre\\Directory",
					"type": "->",
					"args": []
				},
				{
					"file": "/var/www/html/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php",
					"line": 108,
					"function": "cacheDirectory",
					"class": "OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin",
					"type": "->",
					"args": [
						{
							"__class__": "OCA\\DAV\\Files\\FilesHome"
						},
						{
							"__class__": "Sabre\\DAV\\PropFind"
						}
					]
				},
				{
					"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
					"line": 89,
					"function": "preloadCollection",
					"class": "OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin",
					"type": "->",
					"args": [
						{
							"__class__": "Sabre\\DAV\\PropFind"
						},
						{
							"__class__": "OCA\\DAV\\Files\\FilesHome"
						}
					]
				},
				{
					"file": "/var/www/html/apps/dav/lib/Connector/Sabre/PropFindPreloadNotifyPlugin.php",
					"line": 46,
					"function": "emit",
					"class": "Sabre\\DAV\\Server",
					"type": "->",
					"args": [
						"preloadCollection",
						[
							{
								"__class__": "Sabre\\DAV\\PropFind"
							},
							{
								"__class__": "OCA\\DAV\\Files\\FilesHome"
							}
						]
					]
				},
				{
					"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
					"line": 89,
					"function": "collectionPreloadNotifier",
					"class": "OCA\\DAV\\Connector\\Sabre\\PropFindPreloadNotifyPlugin",
					"type": "->",
					"args": [
						{
							"__class__": "Sabre\\DAV\\PropFind"
						},
						{
							"__class__": "OCA\\DAV\\Files\\FilesHome"
						}
					]
				},
				{
					"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
					"line": 1052,
					"function": "emit",
					"class": "Sabre\\DAV\\Server",
					"type": "->",
					"args": [
						"propFind",
						[
							{
								"__class__": "Sabre\\DAV\\PropFind"
							},
							{
								"__class__": "OCA\\DAV\\Files\\FilesHome"
							}
						]
					]
				},
				{
					"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
					"line": 984,
					"function": "getPropertiesByNode",
					"class": "Sabre\\DAV\\Server",
					"type": "->",
					"args": [
						{
							"__class__": "Sabre\\DAV\\PropFind"
						},
						{
							"__class__": "OCA\\DAV\\Files\\FilesHome"
						}
					]
				},
				{
					"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
					"line": 1664,
					"function": "getPropertiesIteratorForPath",
					"class": "Sabre\\DAV\\Server",
					"type": "->",
					"args": [
						"files/jeroen",
						[
							"{DAV:}getcontentlength",
							"{DAV:}getcontenttype",
							"{DAV:}getetag",
							"{DAV:}getlastmodified",
							"{DAV:}creationdate",
							"And 33 more entries, set log level to debug to see all entries"
						],
						1
					]
				},
				{
					"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
					"line": 1649,
					"function": "writeMultiStatus",
					"class": "Sabre\\DAV\\Server",
					"type": "->",
					"args": [
						{
							"__class__": "Sabre\\Xml\\Writer",
							"elementMap": [],
							"contextUri": "/remote.php/dav/",
							"namespaceMap": {
								"DAV:": "d",
								"http://sabredav.org/ns": "s",
								"http://owncloud.org/ns": "oc",
								"http://nextcloud.org/ns": "nc"
							},
							"classMap": []
						},
						{
							"__class__": "Generator"
						},
						false
					]
				},
				{
					"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
					"line": 346,
					"function": "generateMultiStatus",
					"class": "Sabre\\DAV\\Server",
					"type": "->",
					"args": [
						{
							"__class__": "Generator"
						},
						false
					]
				},
				{
					"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
					"line": 89,
					"function": "httpPropFind",
					"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:PROPFIND",
						[
							{
								"__class__": "Sabre\\HTTP\\Request"
							},
							{
								"__class__": "Sabre\\HTTP\\Response"
							}
						]
					]
				},
				{
					"file": "/var/www/html/apps/dav/lib/Connector/Sabre/Server.php",
					"line": 216,
					"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": 436,
					"function": "start",
					"class": "OCA\\DAV\\Connector\\Sabre\\Server",
					"type": "->",
					"args": []
				},
				{
					"file": "/var/www/html/apps/dav/appinfo/v2/remote.php",
					"line": 25,
					"function": "exec",
					"class": "OCA\\DAV\\Server",
					"type": "->",
					"args": []
				},
				{
					"file": "/var/www/html/remote.php",
					"line": 158,
					"args": [
						"/var/www/html/apps/dav/appinfo/v2/remote.php"
					],
					"function": "require"
				},
				{
					"file": "/var/www/html/lib/OC.php",
					"line": 1397,
					"function": "{closure:/var/www/html/remote.php:102}",
					"args": [
						"*** sensitive parameters replaced ***"
					]
				},
				{
					"file": "/var/www/html/remote.php",
					"line": 102,
					"function": "handleRequests",
					"class": "OC",
					"type": "::",
					"args": [
						{
							"__class__": "Closure"
						}
					]
				}
			],
			"File": "/var/www/html/lib/private/Files/Storage/FailedStorage.php",
			"Line": 225,
			"Hint": "Storage is temporarily not available",
			"Previous": {
				"Exception": "phpseclib3\\Exception\\NoKeyLoadedException",
				"Message": "Unable to read key",
				"Code": 0,
				"Trace": [
					{
						"file": "/var/www/html/apps/files_external/lib/Lib/Auth/PublicKey/RSAPrivateKey.php",
						"line": 56,
						"function": "load",
						"class": "phpseclib3\\Crypt\\PublicKeyLoader",
						"type": "::",
						"args": [
							false,
							""
						]
					},
					{
						"file": "/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php",
						"line": 77,
						"function": "manipulateStorageConfig",
						"class": "OCA\\Files_External\\Lib\\Auth\\PublicKey\\RSAPrivateKey",
						"type": "->",
						"args": [
							"*** sensitive parameters replaced ***",
							{
								"__class__": "OC\\User\\User"
							}
						]
					},
					{
						"file": "/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php",
						"line": 82,
						"function": "prepareStorageConfig",
						"class": "OCA\\Files_External\\Config\\ConfigAdapter",
						"type": "->",
						"args": [
							"*** sensitive parameters replaced ***",
							{
								"__class__": "OC\\User\\User"
							}
						]
					},
					{
						"file": "/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php",
						"line": 111,
						"function": "constructStorageForUser",
						"class": "OCA\\Files_External\\Config\\ConfigAdapter",
						"type": "->",
						"args": [
							{
								"__class__": "OC\\User\\User"
							},
							"*** sensitive parameters replaced ***"
						]
					},
					{
						"function": "{closure:OCA\\Files_External\\Config\\ConfigAdapter::getAvailableStorages():109}",
						"class": "OCA\\Files_External\\Config\\ConfigAdapter",
						"type": "->",
						"args": [
							"*** sensitive parameters replaced ***"
						]
					},
					{
						"file": "/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php",
						"line": 109,
						"function": "array_map",
						"args": [
							{
								"__class__": "Closure"
							},
							{
								"6": "*** sensitive parameters replaced ***",
								"7": "*** sensitive parameters replaced ***",
								"8": "*** sensitive parameters replaced ***",
								"14": "*** sensitive parameters replaced ***"
							}
						]
					},
					{
						"file": "/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php",
						"line": 144,
						"function": "getAvailableStorages",
						"class": "OCA\\Files_External\\Config\\ConfigAdapter",
						"type": "->",
						"args": [
							{
								"6": "*** sensitive parameters replaced ***",
								"7": "*** sensitive parameters replaced ***",
								"8": "*** sensitive parameters replaced ***",
								"14": "*** sensitive parameters replaced ***"
							},
							{
								"__class__": "OC\\User\\User"
							}
						]
					},
					{
						"file": "/var/www/html/lib/private/Files/Config/MountProviderCollection.php",
						"line": 62,
						"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/Config/MountProviderCollection.php",
						"line": 177,
						"function": "getMountsFromProvider",
						"class": "OC\\Files\\Config\\MountProviderCollection",
						"type": "->",
						"args": [
							{
								"__class__": "OCA\\Files_External\\Config\\ConfigAdapter"
							},
							{
								"__class__": "OC\\User\\User"
							},
							{
								"__class__": "OC\\Files\\Storage\\StorageFactory"
							}
						]
					},
					{
						"file": "/var/www/html/lib/private/Files/SetupManager.php",
						"line": 290,
						"function": "addMountForUser",
						"class": "OC\\Files\\Config\\MountProviderCollection",
						"type": "->",
						"args": [
							{
								"__class__": "OC\\User\\User"
							},
							{
								"__class__": "OC\\Files\\Mount\\Manager"
							},
							{
								"__class__": "Closure"
							}
						]
					},
					{
						"file": "/var/www/html/lib/private/Files/SetupManager.php",
						"line": 415,
						"function": "{closure:OC\\Files\\SetupManager::setupForUser():289}",
						"class": "OC\\Files\\SetupManager",
						"type": "->",
						"args": [
							"*** sensitive parameters replaced ***"
						]
					},
					{
						"file": "/var/www/html/lib/private/Files/SetupManager.php",
						"line": 289,
						"function": "setupForUserWith",
						"class": "OC\\Files\\SetupManager",
						"type": "->",
						"args": [
							{
								"__class__": "OC\\User\\User"
							},
							{
								"__class__": "Closure"
							}
						]
					},
					{
						"file": "/var/www/html/lib/private/Files/SetupManager.php",
						"line": 501,
						"function": "setupForUser",
						"class": "OC\\Files\\SetupManager",
						"type": "->",
						"args": [
							{
								"__class__": "OC\\User\\User"
							}
						]
					},
					{
						"file": "/var/www/html/lib/private/Files/Mount/Manager.php",
						"line": 116,
						"function": "setupForPath",
						"class": "OC\\Files\\SetupManager",
						"type": "->",
						"args": [
							"/jeroen/files",
							true
						]
					},
					{
						"file": "/var/www/html/lib/private/Files/View.php",
						"line": 1577,
						"function": "findIn",
						"class": "OC\\Files\\Mount\\Manager",
						"type": "->",
						"args": [
							"/jeroen/files"
						]
					},
					{
						"file": "/var/www/html/lib/private/Files/Node/Folder.php",
						"line": 89,
						"function": "getDirectoryContent",
						"class": "OC\\Files\\View",
						"type": "->",
						"args": [
							"/jeroen/files",
							null,
							{
								"__class__": "OC\\Files\\Node\\LazyUserFolder"
							}
						]
					},
					{
						"file": "/var/www/html/apps/dav/lib/Connector/Sabre/Directory.php",
						"line": 267,
						"function": "getDirectoryListing",
						"class": "OC\\Files\\Node\\Folder",
						"type": "->",
						"args": []
					},
					{
						"file": "/var/www/html/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php",
						"line": 59,
						"function": "getChildren",
						"class": "OCA\\DAV\\Connector\\Sabre\\Directory",
						"type": "->",
						"args": []
					},
					{
						"file": "/var/www/html/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php",
						"line": 108,
						"function": "cacheDirectory",
						"class": "OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin",
						"type": "->",
						"args": [
							{
								"__class__": "OCA\\DAV\\Files\\FilesHome"
							},
							{
								"__class__": "Sabre\\DAV\\PropFind"
							}
						]
					},
					{
						"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
						"line": 89,
						"function": "preloadCollection",
						"class": "OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin",
						"type": "->",
						"args": [
							{
								"__class__": "Sabre\\DAV\\PropFind"
							},
							{
								"__class__": "OCA\\DAV\\Files\\FilesHome"
							}
						]
					},
					{
						"file": "/var/www/html/apps/dav/lib/Connector/Sabre/PropFindPreloadNotifyPlugin.php",
						"line": 46,
						"function": "emit",
						"class": "Sabre\\DAV\\Server",
						"type": "->",
						"args": [
							"preloadCollection",
							[
								{
									"__class__": "Sabre\\DAV\\PropFind"
								},
								{
									"__class__": "OCA\\DAV\\Files\\FilesHome"
								}
							]
						]
					},
					{
						"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
						"line": 89,
						"function": "collectionPreloadNotifier",
						"class": "OCA\\DAV\\Connector\\Sabre\\PropFindPreloadNotifyPlugin",
						"type": "->",
						"args": [
							{
								"__class__": "Sabre\\DAV\\PropFind"
							},
							{
								"__class__": "OCA\\DAV\\Files\\FilesHome"
							}
						]
					},
					{
						"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
						"line": 1052,
						"function": "emit",
						"class": "Sabre\\DAV\\Server",
						"type": "->",
						"args": [
							"propFind",
							[
								{
									"__class__": "Sabre\\DAV\\PropFind"
								},
								{
									"__class__": "OCA\\DAV\\Files\\FilesHome"
								}
							]
						]
					},
					{
						"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
						"line": 984,
						"function": "getPropertiesByNode",
						"class": "Sabre\\DAV\\Server",
						"type": "->",
						"args": [
							{
								"__class__": "Sabre\\DAV\\PropFind"
							},
							{
								"__class__": "OCA\\DAV\\Files\\FilesHome"
							}
						]
					},
					{
						"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
						"line": 1664,
						"function": "getPropertiesIteratorForPath",
						"class": "Sabre\\DAV\\Server",
						"type": "->",
						"args": [
							"files/jeroen",
							[
								"{DAV:}getcontentlength",
								"{DAV:}getcontenttype",
								"{DAV:}getetag",
								"{DAV:}getlastmodified",
								"{DAV:}creationdate",
								"And 33 more entries, set log level to debug to see all entries"
							],
							1
						]
					},
					{
						"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
						"line": 1649,
						"function": "writeMultiStatus",
						"class": "Sabre\\DAV\\Server",
						"type": "->",
						"args": [
							{
								"__class__": "Sabre\\Xml\\Writer",
								"elementMap": [],
								"contextUri": "/remote.php/dav/",
								"namespaceMap": {
									"DAV:": "d",
									"http://sabredav.org/ns": "s",
									"http://owncloud.org/ns": "oc",
									"http://nextcloud.org/ns": "nc"
								},
								"classMap": []
							},
							{
								"__class__": "Generator"
							},
							false
						]
					},
					{
						"file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
						"line": 346,
						"function": "generateMultiStatus",
						"class": "Sabre\\DAV\\Server",
						"type": "->",
						"args": [
							{
								"__class__": "Generator"
							},
							false
						]
					},
					{
						"file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
						"line": 89,
						"function": "httpPropFind",
						"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:PROPFIND",
							[
								{
									"__class__": "Sabre\\HTTP\\Request"
								},
								{
									"__class__": "Sabre\\HTTP\\Response"
								}
							]
						]
					},
					{
						"file": "/var/www/html/apps/dav/lib/Connector/Sabre/Server.php",
						"line": 216,
						"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": 436,
						"function": "start",
						"class": "OCA\\DAV\\Connector\\Sabre\\Server",
						"type": "->",
						"args": []
					},
					{
						"file": "/var/www/html/apps/dav/appinfo/v2/remote.php",
						"line": 25,
						"function": "exec",
						"class": "OCA\\DAV\\Server",
						"type": "->",
						"args": []
					},
					{
						"file": "/var/www/html/remote.php",
						"line": 158,
						"args": [
							"/var/www/html/apps/dav/appinfo/v2/remote.php"
						],
						"function": "require"
					},
					{
						"file": "/var/www/html/lib/OC.php",
						"line": 1397,
						"function": "{closure:/var/www/html/remote.php:102}",
						"args": [
							"*** sensitive parameters replaced ***"
						]
					},
					{
						"file": "/var/www/html/remote.php",
						"line": 102,
						"function": "handleRequests",
						"class": "OC",
						"type": "::",
						"args": [
							{
								"__class__": "Closure"
							}
						]
					}
				],
				"File": "/var/www/html/custom_apps/richdocuments/vendor/phpseclib/phpseclib/phpseclib/Crypt/PublicKeyLoader.php",
				"Line": 64
			}
		},
		"message": "Error while getting quota info, using root quota",
		"exception": "{\"class\":\"OCP\\Files\\StorageNotAvailableException\",\"message\":\"Unable to read key\",\"code\":0,\"file\":\"/var/www/html/lib/private/Files/Storage/FailedStorage.php:225\",\"trace\":\"#0 /var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php(323): OC\\Files\\Storage\\FailedStorage->getAvailability()\\n#1 /var/www/html/lib/private/Files/Storage/Wrapper/Availability.php(61): OC\\Files\\Storage\\Wrapper\\Wrapper->getAvailability()\\n#2 /var/www/html/lib/private/Files/Storage/Wrapper/Availability.php(74): OC\\Files\\Storage\\Wrapper\\Availability->isAvailable()\\n#3 /var/www/html/lib/private/Files/Storage/Wrapper/Availability.php(83): OC\\Files\\Storage\\Wrapper\\Availability->checkAvailability()\\n#4 /var/www/html/lib/private/Files/Storage/Wrapper/Availability.php(217): OC\\Files\\Storage\\Wrapper\\Availability->handleAvailability('free_space', '')\\n#5 /var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php(186): OC\\Files\\Storage\\Wrapper\\Availability->free_space('')\\n#6 /var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php(186): OC\\Files\\Storage\\Wrapper\\Wrapper->free_space('')\\n#7 /var/www/html/lib/private/legacy/OC_Helper.php(231): OC\\Files\\Storage\\Wrapper\\Wrapper->free_space('')\\n#8 /var/www/html/apps/dav/lib/Connector/Sabre/Directory.php(349): OC_Helper::getStorageInfo('/home-Jeroen', Object(OC\\Files\\Node\\Folder), false)\\n#9 /var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php(770): OCA\\DAV\\Connector\\Sabre\\Directory->getQuotaInfo()\\n#10 /var/www/html/3rdparty/sabre/dav/lib/DAV/PropFind.php(95): Sabre\\DAV\\CorePlugin->{closure:Sabre\\DAV\\CorePlugin::propFind():768}()\\n#11 /var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php(768): Sabre\\DAV\\PropFind->handle('{DAV:}quota-ava...', Object(Closure))\\n#12 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): Sabre\\DAV\\CorePlugin->propFind(Object(Sabre\\DAV\\PropFind), Object(OCA\\DAV\\Connector\\Sabre\\Directory))\\n#13 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1052): Sabre\\DAV\\Server->emit('propFind', Array)\\n#14 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(984): Sabre\\DAV\\Server->getPropertiesByNode(Object(Sabre\\DAV\\PropFind), Object(OCA\\DAV\\Connector\\Sabre\\Directory))\\n#15 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1664): Sabre\\DAV\\Server->getPropertiesIteratorForPath('files/jeroen', Array, 1)\\n#16 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1649): Sabre\\DAV\\Server->writeMultiStatus(Object(Sabre\\Xml\\Writer), Object(Generator), false)\\n#17 /var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php(346): Sabre\\DAV\\Server->generateMultiStatus(Object(Generator), false)\\n#18 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): Sabre\\DAV\\CorePlugin->httpPropFind(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#19 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(472): Sabre\\DAV\\Server->emit('method:PROPFIND', Array)\\n#20 /var/www/html/apps/dav/lib/Connector/Sabre/Server.php(216): Sabre\\DAV\\Server->invokeMethod(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#21 /var/www/html/apps/dav/lib/Server.php(436): OCA\\DAV\\Connector\\Sabre\\Server->start()\\n#22 /var/www/html/apps/dav/appinfo/v2/remote.php(25): OCA\\DAV\\Server->exec()\\n#23 /var/www/html/remote.php(158): require('/var/www/html/a...')\\n#24 /var/www/html/lib/OC.php(1397): {closure:/var/www/html/remote.php:102}()\\n#25 /var/www/html/remote.php(102): OC::handleRequests(Object(Closure))\\n#26 {main}\",\"previous\":{\"class\":\"OCP\\Files\\StorageNotAvailableException\",\"message\":\"Unable to read key\",\"code\":0,\"file\":\"/var/www/html/lib/private/Files/Storage/FailedStorage.php:225\",\"trace\":\"#0 /var/www/html/apps/files_external/lib/Config/ConfigAdapter.php(124): OC\\Files\\Storage\\FailedStorage->getAvailability()\\n#1 [internal function]: OCA\\Files_External\\Config\\ConfigAdapter->{closure:OCA\\Files_External\\Config\\ConfigAdapter::getAvailableStorages():122}(Object(OC\\Files\\Storage\\FailedStorage), Object(OCA\\Files_External\\Lib\\StorageConfig))\\n#2 /var/www/html/apps/files_external/lib/Config/ConfigAdapter.php(122): array_map(Object(Closure), Array, Array)\\n#3 /var/www/html/apps/files_external/lib/Config/ConfigAdapter.php(144): OCA\\Files_External\\Config\\ConfigAdapter->getAvailableStorages(Array, Object(OC\\User\\User))\\n#4 /var/www/html/lib/private/Files/Config/MountProviderCollection.php(62): OCA\\Files_External\\Config\\ConfigAdapter->getMountsForUser(Object(OC\\User\\User), Object(OC\\Files\\Storage\\StorageFactory))\\n#5 /var/www/html/lib/private/Files/Config/MountProviderCollection.php(177): OC\\Files\\Config\\MountProviderCollection->getMountsFromProvider(Object(OCA\\Files_External\\Config\\ConfigAdapter), Object(OC\\User\\User), Object(OC\\Files\\Storage\\StorageFactory))\\n#6 /var/www/html/lib/private/Files/SetupManager.php(290): OC\\Files\\Config\\MountProviderCollection->addMountForUser(Object(OC\\User\\User), Object(OC\\Files\\Mount\\Manager), Object(Closure))\\n#7 /var/www/html/lib/private/Files/SetupManager.php(415): OC\\Files\\SetupManager->{closure:OC\\Files\\SetupManager::setupForUser():289}()\\n#8 /var/www/html/lib/private/Files/SetupManager.php(289): OC\\Files\\SetupManager->setupForUserWith(Object(OC\\User\\User), Object(Closure))\\n#9 /var/www/html/lib/private/Files/SetupManager.php(501): OC\\Files\\SetupManager->setupForUser(Object(OC\\User\\User))\\n#10 /var/www/html/lib/private/Files/Mount/Manager.php(116): OC\\Files\\SetupManager->setupForPath('/jeroen/files', true)\\n#11 /var/www/html/lib/private/Files/View.php(1577): OC\\Files\\Mount\\Manager->findIn('/jeroen/files')\\n#12 /var/www/html/lib/private/Files/Node/Folder.php(89): OC\\Files\\View->getDirectoryContent('/jeroen/files', NULL, Object(OC\\Files\\Node\\LazyUserFolder))\\n#13 /var/www/html/apps/dav/lib/Connector/Sabre/Directory.php(267): OC\\Files\\Node\\Folder->getDirectoryListing()\\n#14 /var/www/html/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php(59): OCA\\DAV\\Connector\\Sabre\\Directory->getChildren()\\n#15 /var/www/html/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php(108): OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin->cacheDirectory(Object(OCA\\DAV\\Files\\FilesHome), Object(Sabre\\DAV\\PropFind))\\n#16 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin->preloadCollection(Object(Sabre\\DAV\\PropFind), Object(OCA\\DAV\\Files\\FilesHome))\\n#17 /var/www/html/apps/dav/lib/Connector/Sabre/PropFindPreloadNotifyPlugin.php(46): Sabre\\DAV\\Server->emit('preloadCollecti...', Array)\\n#18 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): OCA\\DAV\\Connector\\Sabre\\PropFindPreloadNotifyPlugin->collectionPreloadNotifier(Object(Sabre\\DAV\\PropFind), Object(OCA\\DAV\\Files\\FilesHome))\\n#19 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1052): Sabre\\DAV\\Server->emit('propFind', Array)\\n#20 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(984): Sabre\\DAV\\Server->getPropertiesByNode(Object(Sabre\\DAV\\PropFind), Object(OCA\\DAV\\Files\\FilesHome))\\n#21 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1664): Sabre\\DAV\\Server->getPropertiesIteratorForPath('files/jeroen', Array, 1)\\n#22 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1649): Sabre\\DAV\\Server->writeMultiStatus(Object(Sabre\\Xml\\Writer), Object(Generator), false)\\n#23 /var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php(346): Sabre\\DAV\\Server->generateMultiStatus(Object(Generator), false)\\n#24 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): Sabre\\DAV\\CorePlugin->httpPropFind(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#25 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(472): Sabre\\DAV\\Server->emit('method:PROPFIND', Array)\\n#26 /var/www/html/apps/dav/lib/Connector/Sabre/Server.php(216): Sabre\\DAV\\Server->invokeMethod(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#27 /var/www/html/apps/dav/lib/Server.php(436): OCA\\DAV\\Connector\\Sabre\\Server->start()\\n#28 /var/www/html/apps/dav/appinfo/v2/remote.php(25): OCA\\DAV\\Server->exec()\\n#29 /var/www/html/remote.php(158): require('/var/www/html/a...')\\n#30 /var/www/html/lib/OC.php(1397): {closure:/var/www/html/remote.php:102}()\\n#31 /var/www/html/remote.php(102): OC::handleRequests(Object(Closure))\\n#32 {main}\",\"previous\":{\"class\":\"phpseclib3\\Exception\\NoKeyLoadedException\",\"message\":\"Unable to read key\",\"code\":0,\"file\":\"/var/www/html/custom_apps/richdocuments/vendor/phpseclib/phpseclib/phpseclib/Crypt/PublicKeyLoader.php:64\",\"trace\":\"#0 /var/www/html/apps/files_external/lib/Lib/Auth/PublicKey/RSAPrivateKey.php(56): phpseclib3\\Crypt\\PublicKeyLoader::load(false, '')\\n#1 /var/www/html/apps/files_external/lib/Config/ConfigAdapter.php(77): OCA\\Files_External\\Lib\\Auth\\PublicKey\\RSAPrivateKey->manipulateStorageConfig(Object(OCA\\Files_External\\Lib\\StorageConfig), Object(OC\\User\\User))\\n#2 /var/www/html/apps/files_external/lib/Config/ConfigAdapter.php(82): OCA\\Files_External\\Config\\ConfigAdapter->prepareStorageConfig(Object(OCA\\Files_External\\Lib\\StorageConfig), Object(OC\\User\\User))\\n#3 /var/www/html/apps/files_external/lib/Config/ConfigAdapter.php(111): OCA\\Files_External\\Config\\ConfigAdapter->constructStorageForUser(Object(OC\\User\\User), Object(OCA\\Files_External\\Lib\\StorageConfig))\\n#4 [internal function]: OCA\\Files_External\\Config\\ConfigAdapter->{closure:OCA\\Files_External\\Config\\ConfigAdapter::getAvailableStorages():109}(Object(OCA\\Files_External\\Lib\\StorageConfig))\\n#5 /var/www/html/apps/files_external/lib/Config/ConfigAdapter.php(109): array_map(Object(Closure), Array)\\n#6 /var/www/html/apps/files_external/lib/Config/ConfigAdapter.php(144): OCA\\Files_External\\Config\\ConfigAdapter->getAvailableStorages(Array, Object(OC\\User\\User))\\n#7 /var/www/html/lib/private/Files/Config/MountProviderCollection.php(62): OCA\\Files_External\\Config\\ConfigAdapter->getMountsForUser(Object(OC\\User\\User), Object(OC\\Files\\Storage\\StorageFactory))\\n#8 /var/www/html/lib/private/Files/Config/MountProviderCollection.php(177): OC\\Files\\Config\\MountProviderCollection->getMountsFromProvider(Object(OCA\\Files_External\\Config\\ConfigAdapter), Object(OC\\User\\User), Object(OC\\Files\\Storage\\StorageFactory))\\n#9 /var/www/html/lib/private/Files/SetupManager.php(290): OC\\Files\\Config\\MountProviderCollection->addMountForUser(Object(OC\\User\\User), Object(OC\\Files\\Mount\\Manager), Object(Closure))\\n#10 /var/www/html/lib/private/Files/SetupManager.php(415): OC\\Files\\SetupManager->{closure:OC\\Files\\SetupManager::setupForUser():289}()\\n#11 /var/www/html/lib/private/Files/SetupManager.php(289): OC\\Files\\SetupManager->setupForUserWith(Object(OC\\User\\User), Object(Closure))\\n#12 /var/www/html/lib/private/Files/SetupManager.php(501): OC\\Files\\SetupManager->setupForUser(Object(OC\\User\\User))\\n#13 /var/www/html/lib/private/Files/Mount/Manager.php(116): OC\\Files\\SetupManager->setupForPath('/jeroen/files', true)\\n#14 /var/www/html/lib/private/Files/View.php(1577): OC\\Files\\Mount\\Manager->findIn('/jeroen/files')\\n#15 /var/www/html/lib/private/Files/Node/Folder.php(89): OC\\Files\\View->getDirectoryContent('/jeroen/files', NULL, Object(OC\\Files\\Node\\LazyUserFolder))\\n#16 /var/www/html/apps/dav/lib/Connector/Sabre/Directory.php(267): OC\\Files\\Node\\Folder->getDirectoryListing()\\n#17 /var/www/html/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php(59): OCA\\DAV\\Connector\\Sabre\\Directory->getChildren()\\n#18 /var/www/html/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php(108): OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin->cacheDirectory(Object(OCA\\DAV\\Files\\FilesHome), Object(Sabre\\DAV\\PropFind))\\n#19 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin->preloadCollection(Object(Sabre\\DAV\\PropFind), Object(OCA\\DAV\\Files\\FilesHome))\\n#20 /var/www/html/apps/dav/lib/Connector/Sabre/PropFindPreloadNotifyPlugin.php(46): Sabre\\DAV\\Server->emit('preloadCollecti...', Array)\\n#21 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): OCA\\DAV\\Connector\\Sabre\\PropFindPreloadNotifyPlugin->collectionPreloadNotifier(Object(Sabre\\DAV\\PropFind), Object(OCA\\DAV\\Files\\FilesHome))\\n#22 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1052): Sabre\\DAV\\Server->emit('propFind', Array)\\n#23 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(984): Sabre\\DAV\\Server->getPropertiesByNode(Object(Sabre\\DAV\\PropFind), Object(OCA\\DAV\\Files\\FilesHome))\\n#24 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1664): Sabre\\DAV\\Server->getPropertiesIteratorForPath('files/jeroen', Array, 1)\\n#25 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(1649): Sabre\\DAV\\Server->writeMultiStatus(Object(Sabre\\Xml\\Writer), Object(Generator), false)\\n#26 /var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php(346): Sabre\\DAV\\Server->generateMultiStatus(Object(Generator), false)\\n#27 /var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php(89): Sabre\\DAV\\CorePlugin->httpPropFind(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#28 /var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php(472): Sabre\\DAV\\Server->emit('method:PROPFIND', Array)\\n#29 /var/www/html/apps/dav/lib/Connector/Sabre/Server.php(216): Sabre\\DAV\\Server->invokeMethod(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\\n#30 /var/www/html/apps/dav/lib/Server.php(436): OCA\\DAV\\Connector\\Sabre\\Server->start()\\n#31 /var/www/html/apps/dav/appinfo/v2/remote.php(25): OCA\\DAV\\Server->exec()\\n#32 /var/www/html/remote.php(158): require('/var/www/html/a...')\\n#33 /var/www/html/lib/OC.php(1397): {closure:/var/www/html/remote.php:102}()\\n#34 /var/www/html/remote.php(102): OC::handleRequests(Object(Closure))\\n#35 {main}\"}}}",
		"CustomMessage": "Error while getting quota info, using root quota"
	},
	"id": "6ab41eeccec45"
}
Additional info

No response

Lenguaje dominante
PHP
Estrellas
36.9k
Forks
5.2k
Merge medio
2 d 5 h
PR fusionados (30 d)
735

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de nextcloud/server

Todos los issues de nextcloud/server

Issues similares

Más issues de PHP

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.