[Request] Allow ignoring failing plugin installs due to network hiccups during restore
The problem
The timeout for downloading the plugins during restore is too short apparently and it always fails at some random plugin in this process, so I cannot proceed.
Can this be lengthened from the cli somehow so it tries to pull through? I cannot get my printer setup back like this.
Also, it fails in a way that requires being able to read Python stacktraces, not providing a concise error message. I can do that no problem, but it might be an issue for less proficient users.
System Info bundle cannot be downloaded as Octoprint is not set up yet. I zipped the logs folder and attached it.
System is a RasPi 3B+, SD is a SanDisk 16GB (has been running like this for years, needed to upgrade though as Python was unsupported and OS was still on Buster)
Did the issue persist even in safe mode?
I cannot test this issue in safe mode (state why below)
If you could not test in safe mode, please state why ("currently printing" is NOT an excuse!)
This is about restore during system setup
Version of OctoPrint
OctoPrint version : 1.11.7 OctoPi version : 1.1.0
Operating system running OctoPrint
Linux octopi 6.6.51+rpt-rpi-v7 #1 SMP Raspbian 1:6.6.51-1+rpt3 (2024-10-08) armv7l
Browser and version of browser, operating system running browser
Firefox, Brave, no difference
Printer model & used firmware incl. version
Elegoo neptune 3 pro (probably irrelevant for this)
Systeminfo Bundle
Checklist of files to include below
- Contents of the JavaScript browser console (always include in cases of issues with the user interface)
- Screenshots and/or videos showing the problem (always include in case of issues with the user interface)
- GCODE file with which to reproduce (always include in case of issues with GCODE analysis or printing behaviour)
Additional information & file uploads
Example log, here it failed right at the first plugin but as said it's not always the case.
Uploading backup, this can take a while. Please wait...
Restoring from backup...
Unpacking backup to /tmp/tmp25l9u29i...
Unpacked
Known and installable plugins: cancelobject, SpoolManager, UltimakerFormatPackage, excluderegion, dashboard, z_probe_offset, prettygcode, prusaslicerthumbnails, PrintJobHistory, backupscheduler, DisplayLayerProgress, tasmota, PrintTimeGenius, costestimation, preheat, filemanager
Installing plugin "cancelobject"...
Removing temporary unpacked folder
Error while running restore
Traceback (most recent call last):
File "/opt/octopi/oprint/lib/python3.11/site-packages/urllib3/connectionpool.py", line 534, in _make_request
response = conn.getresponse()
^^^^^^^^^^^^^^^^^^
File "/opt/octopi/oprint/lib/python3.11/site-packages/urllib3/connection.py", line 516, in getresponse
httplib_response = super().getresponse()
^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/http/client.py", line 1374, in getresponse
response.begin()
File "/usr/lib/python3.11/http/client.py", line 318, in begin
version, status, reason = self._read_status()
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/http/client.py", line 279, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/socket.py", line 706, in readinto
return self._sock.recv_into(b)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/ssl.py", line 1311, in recv_into
return self.read(nbytes, buffer)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/ssl.py", line 1167, in read
return self._sslobj.read(len, buffer)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/opt/octopi/oprint/lib/python3.11/site-packages/requests/adapters.py", line 667, in send
resp = conn.urlopen(
^^^^^^^^^^^^^
File "/opt/octopi/oprint/lib/python3.11/site-packages/urllib3/connectionpool.py", line 841, in urlopen
retries = retries.increment(
^^^^^^^^^^^^^^^^^^
File "/opt/octopi/oprint/lib/python3.11/site-packages/urllib3/util/retry.py", line 474, in increment
raise reraise(type(error), error, _stacktrace)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/octopi/oprint/lib/python3.11/site-packages/urllib3/util/util.py", line 39, in reraise
raise value
File "/opt/octopi/oprint/lib/python3.11/site-packages/urllib3/connectionpool.py", line 787, in urlopen
response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/opt/octopi/oprint/lib/python3.11/site-packages/urllib3/connectionpool.py", line 536, in _make_request
self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
File "/opt/octopi/oprint/lib/python3.11/site-packages/urllib3/connectionpool.py", line 367, in _raise_timeout
raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='github.com', port=443): Read timed out. (read timeout=7)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/octopi/oprint/lib/python3.11/site-packages/octoprint/plugins/backup/__init__.py", line 1332, in _restore_backup
on_install_plugins(known_plugins)
File "/opt/octopi/oprint/lib/python3.11/site-packages/octoprint/plugins/backup/__init__.py", line 282, in on_install_plugins
self.__class__._install_plugin(
File "/opt/octopi/oprint/lib/python3.11/site-packages/octoprint/plugins/backup/__init__.py", line 897, in _install_plugin
with prepare_install(plugin["archive"], log=log) as prep:
File "/usr/lib/python3.11/contextlib.py", line 137, in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
File "/opt/octopi/oprint/lib/python3.11/site-packages/octoprint/util/plugins.py", line 132, in prepare_install
install_arg = download_file(install_arg, folder.name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/octopi/oprint/lib/python3.11/site-packages/octoprint/util/net.py", line 300, in download_file
with requests.get(url, stream=True, timeout=(connect_timeout, read_timeout)) as r:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/octopi/oprint/lib/python3.11/site-packages/requests/api.py", line 73, in get
return request("get", url, params=params, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/octopi/oprint/lib/python3.11/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/octopi/oprint/lib/python3.11/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/octopi/oprint/lib/python3.11/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/octopi/oprint/lib/python3.11/site-packages/requests/adapters.py", line 713, in send
raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='github.com', port=443): Read timed out. (read timeout=7)
Restore failed! Check the above output and octoprint.log for reasons as to why.
Removing temporary zipSource: OctoPrint/OctoPrint