It is to despair. It doesn't work as I guess:
Error is thrown by settings.py #1579 ..
try:
_validate_folder(folder, create=create, check_writable=check_writable, deep_check_writable=deep_check_writable, log_error=log_error)
except Exception:
if folder != default_folder and allow_fallback:
if log_error:
self._logger.error("Invalid configured {} folder at {}, attempting to "
"fall back on default folder at {}".format(type,
folder,
default_folder))
_validate_folder should log some detailed error messages:
def _validate_folder(folder, create=True, check_writable=True, deep_check_writable=False, log_error=False):
logger = logging.getLogger(__name__)
if not os.path.exists(folder):
if os.path.islink(folder):
# broken symlink, see #2644
raise IOError("Folder at {} appears to be a broken symlink".format(folder))
elif create:
# non existing, but we are allowed to create it
try:
os.makedirs(folder)
except Exception:
if log_error:
logger.exception("Could not create {}".format(folder))
raise IOError("Folder for type {} at {} does not exist and creation failed".format(type, folder))
else:
# not extisting, not allowed to create it
raise IOError("No such folder: {}".format(folder))
elif os.path.isfile(folder):
# hardening against misconfiguration, see #1953
raise IOError("Expected a folder at {} but found a file instead".format(folder))
elif check_writable:
# make sure we can also write into the folder
error = "Folder at {} doesn't appear to be writable, please fix its permissions".format(folder)
if not os.access(folder, os.W_OK):
raise IOError(error)
elif deep_check_writable:
# try to write a file to the folder - on network shares that might be the only reliable way
# to determine whether things are *actually* writable
testfile = os.path.join(folder, ".testballoon.txt")
try:
with io.open(testfile, 'wt', encoding='utf-8') as f:
f.write("test")
os.remove(testfile)
except Exception:
if log_error:
logger.exception("Could not write test file to {}".format(folder))
raise IOError(error)
But also log level is set to DEBUG
logging.yaml:
loggers:
octoprint:
level: DEBUG
and logging directory is default, there are no log messages from _validate_folder:
2021-01-21 12:28:20,030 - octoprint.startup - INFO - ******************************************************************************
2021-01-21 12:28:20,032 - octoprint.startup - INFO - Starting OctoPrint 1.4.2
2021-01-21 12:28:20,033 - octoprint.startup - INFO - ******************************************************************************
2021-01-21 12:28:20,035 - octoprint.settings - ERROR - Invalid configured uploads folder at /mnt/usb1/octoprint/uploads, attempting to fall back on default folder at /home/pi/.octoprint/uploads
2021-01-21 12:28:20,993 - octoprint.settings - ERROR - Invalid configured timelapse folder at /mnt/usb1/octoprint/timelapse, attempting to fall back on default folder at /home/pi/.octoprint/timelapse
2021-01-21 12:28:21,361 - octoprint.settings - ERROR - Invalid configured timelapse_tmp folder at /mnt/usb1/octoprint/timelapse/tmp, attempting to fall back on default folder at /home/pi/.octoprint/timelapse/tmp
2021-01-21 12:28:21,726 - octoprint.settings - ERROR - Invalid configured watched folder at /mnt/usb1/octoprint/watched, attempting to fall back on default folder at /home/pi/.octoprint/watched
2021-01-21 12:28:22,119 - octoprint.util.connectivity.connectivity_checker - INFO - Connectivity state is currently: online
2021-01-21 12:28:22,119 - octoprint.util.connectivity.connectivity_checker - INFO - Connecting to 8.8.8.8:53 is working
2021-01-21 12:28:22,119 - octoprint.util.connectivity.connectivity_checker - INFO - Resolving octoprint.org is working
2021-01-21 12:28:22,179 - octoprint.plugin.core - INFO - Loading plugins from /home/pi/OctoPrint/venv/lib/python3.6/site-packages/octoprint/plugins, /home/pi/.octoprint/plugins and installed plugin packages...
2021-01-21 12:28:22,181 - octoprint.plugin.core - DEBUG - Parsing plugin metadata for gcodeviewer from AST of