New release: 1.7.0

Thanks to a vacation and a surgery, this was one of the longest Release Candidate phases so far, spanning from August 4th until now. Thus I’m extra happy to finally present you with 1.7.0 today! 🥳

Like every single release (and release candidate) of OctoPrint ever since 2016 this release was made possible only through your continued support of my work 💕

The full changelog contains a long list of new features, improvements and bug fixes, but here are some of the highlights:

  • Added support for the EXTENDED_M20 firmware capability. If detected, OctoPrint will now send M20 L instead of plain M20 requests to firmwares, to allow immediate fetch of long names. Quoted long names, as apparently sent by some firmwares even though there was never a mention of that during the initial feature discussions, are also supported now.
  • Thanks to @jneilliii there’s a new bundled plugin “Event Manager” for managing event subscriptions via the UI.
  • Made the system info bundle more visible. Many users are still copy/pasting the textual system info dump and forget to share the bundle. So the request was rephrased to target the bundle and the textual info dump was hidden behind a “More” area. Also, the bundle viewer has been linked.
  • @cp2004 did some magic and improved the animation performance across all modals in the UI.
  • The Software Update Plugin now sports an update log with a link to the associated release notes. You will now be able to see the update events of the past 30d right from within the Software Update settings in case you need to debug something. The update log will also be shared into the system info bundle.
  • The Software Update Plugin will also now prompt for an update of OctoPrint during first time setup if there’s a new version available, before any other settings.
  • If still running under Python 2, OctoPrint will now show a notification linking to update instructions to Python 3 on page reload/connection to the backend.
  • Added tracking of user agent string via new tracking event webui_load. This will allow making more informed development decisions with regards to frontend development.
  • OctoPrint’s console output will now be colored based on log severity.
  • Various fixes like fixing a non deterministic sorting behaviour and working around an arc rendering bug in Chrome, fixing some inconsistencies, typos and wordings and so on.
  • … and even more.


Please read the following carefully, it might impact you and how you use OctoPrint! Also see the Further Information and Links below for more information, where to find help and how to roll back.

Heads-up for anyone still on OctoPi 0.15.0 or 0.15.1

OctoPrint 1.7.0 is the final release that will allow updating through the built in Software Update plugin. The Python environment on OctoPi 0.15.* has now become so ancient that the overhead of keeping on supporting it is no longer sustainable, and the likelihood of spontaneous breakage has increased significantly.

If you are one of the ~5% of users still on OctoPi 0.15, create a backup of your OctoPrint data, flash the latest OctoPrint 0.18 to ideally a fresh SD card (they age too…) and restore from backup. That should get you up and running under a current OctoPi release in no time and additionally migrate you to Python 3.

Heads-up for anyone still on Python 2

I’ll do my very best to keep OctoPrint functional under Python 2 until the release of OctoPrint 2.0.0, however Python 2.7 has been EOL now for almost two years, a lot of third party libraries are releasing updates for Python 3 only at this point, and many plugin authors for OctoPrint do so as well.

It is time to upgrade, and so OctoPrint 1.7.0 will now show you a pop-up about that fact when you open the UI. You do not have to act, but it is strongly recommended you do if you don’t want to be left behind, and the pop-up will also tell you how to update:


Please do, the less Python 2 users are out there I still have to support, the more time I have for moving towards 2.0.

Heads-up for plugin authors: `octoprint.util.get_free_bytes` has been removed

The utility function octoprint.util.get_free_bytes, now deprecated since version 1.2.5 in favor of psutil.disk_usage, has finally been removed. If for any reason you’ve been using this in your third party plugin, ignoring the deprecation warning OctoPrint has been printing out to the log since 2015, now is the time to finally fix things.


Thanks to everyone who contributed to this release and provided full, analyzable bug reports, suggestions and feedback!

A special Thank you! to these fine people for their PRs:

And last but not least, another shoutout to everyone who reported back on the release candidates this time: @AndroidCloned, @Andy-ABTec, @b-morgan, @ChrisHeerschap, @cmock, @cp2004, @donb55, @gbickel1, @jneilliii, @JohnOCFII, @kazibole, @loskexos, @MangaValk, @mild-lemon, @mod38, @Onejk1, @Phydam, @Reperiel, @sticilface, @SwgDad99, @Taomyn and @The-EG.


If you are interested in some numbers, here's some data extracted from the anonymous usage tracking for the RCs that went before 1.7.0's stable release:

  • 1.7.0rc2 (2021-08-11): 1366 instances, 63900h or 7.3 years of accumulative printing time
  • 1.7.0rc3 (2021-09-13): 1330 instances, 45200h or 5.2 years of accumulative printing time
Due to this RC phase taking longer than 60 days, which is the current limit of the anonymous usage tracking, data for these RCs is not fully available anymore:

Overall there were 1976 instances that participated in the RC testing phase and which collectively completed 112267h or 12.8 years of print jobs.

Further Information

It may take up to 24h for your update notification to pop up, so don't be alarmed if it doesn't show up immediately after reading this. You can force the update however via Settings > Software Update > Advanced options > Force check for update.

If you get an error about "no suitable distribution" during update, please read this.

If you have any problems with your OctoPrint installation, please seek support on the community forum.


This is a companion discussion topic for the original entry at

Congratulations on the new release! I'm excited to try it out!


Thank you for all of your hard work and dedication not only to the hardware/software but also for us users!


Thank you for all of your hard work everyone! can't wait to try the new release! :slight_smile:

This may be a dumb question, but will Octopi automatically pick up this new release? My current install is running Python 2.7, so thinking I will start with a clean install from a current backup.

Congrats with new release! ) Just a small issue here. Latest Marlin uses Cap:LONG_FILENAME, not EXTENDED_M20 as in PrusaSlicer, so this capability is disregarded. Manually sending M20 L gcode and voilà! OctoPrint file section updates short file names to long ones.

It doesn't yet, but there are plans to have it automatically generated and available via the raspberry pi imager. In the meantime, you can get the latest available stable octopi image with the latest release of OctoPrint pre-installed here.

OctoPrint in OctoPi will offer you to update, yes.

... Oh ffs. Why can't it be easy for once? :sob:

edit Apparently support for the EXTENDED_M20 report is forthcoming:

I feel for you. I happened to look into Marlin config examples, wow, I had no idea that so many different printers were supported. BTW 1.7 upgrade seamless as usual.

1 Like

Thanks for the work and dedication

Thanks. This is what I needed.

Anyone else get update failure? I've run it twice and it fails on a dedicated RPI3 currently running 1.6.1

Sorry for the messy paste, copied directly from the interface error pop-up:

from logging import NullHandlerImportError: cannot import name NullHandler----------------------------------------ERROR: Command errored out with exit status 1: /home/pi/oprint/bin/python2 /home/pi/oprint/local/lib/python2.7/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-I9xJb0/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i --extra-index-url -- setuptools wheel Cython Check the logs for full command output.The update did not finish successfully. Please consult <code>octoprint.log</code> and <code>plugin_softwareupdate_console.log</code> for details.

This is such a common issue (and caused by having installed an earlier version of PrintTimeGenius) that this now even has its own FAQ entry :wink:

This fixed it (after I re-read instructions and also un-installed the fix). Then I decided to upgrade Python and re-imaged so I should probably have just done that and it would not have re-installed the logging module.

Long story short, if you have this issue, backup and image upgrade and it should fix it plus save a step.

1 Like
  • OctoPrint 1.7.0
  • Python 3.7.3
  • OctoPi 0.18.0

Hi there,

since the update to 1.7.0 there is no conection to my Anycubic i3 Mega S. Is there an known issue?
I tried to reboot in safe mode, but still the same problem.

2021-10-13 21:26:04,609 - octoprint.util.comm - INFO - Serial detection: Trying port /dev/ttyUSB0, baudrate 9600
2021-10-13 21:26:04,612 - octoprint.util.comm - INFO - Serial detection: Handshake attempt #1 with timeout 2.0s
2021-10-13 21:26:04,623 - octoprint.util.comm - INFO - M110 detected, setting current line number to 0
2021-10-13 21:26:06,626 - octoprint.util.comm - INFO - Serial detection: Handshake attempt #2 with timeout 2.0s
2021-10-13 21:26:06,638 - octoprint.util.comm - INFO - M110 detected, setting current line number to 0
2021-10-13 21:26:08,639 - octoprint.util.comm - INFO - Serial detection: Handshake attempt #3 with timeout 2.0s
2021-10-13 21:26:08,649 - octoprint.util.comm - INFO - M110 detected, setting current line number to 0
2021-10-13 21:26:10,660 - octoprint.util.comm - INFO - Changing monitoring state from "Detecting serial connection" to "Error"
2021-10-13 21:26:10,746 - octoprint.util.comm - INFO - Changing monitoring state from "Error" to "Offline after error"
2021-10-13 21:26:10,762 - octoprint.plugins.action_command_notification - INFO - Notifications cleared
2021-10-13 21:26:11,146 - octoprint.plugins.tracking - INFO - Sent tracking event commerror_autodetect, payload: {'commerror_text': 'No more candidates to test, and no working port/baudrate combination detected.'}

Try manually setting your baud rate to 115200. 9600 seems low unless you know specifically that is correct.

the log was only a part of all.
Baud rate is AUTO, really strange.
It worked really fine before.
Is there a issue with OctoPi 0.18.0 or maybe the printer ?

No major issues I'm aware of. You may want to open a separate post in #support with a full systeminfo bundle.


Ok I will do, thx :slight_smile:

The strange thing is that it works with the old OctoPrint from scratch
that is included in OctoPi 0.18.0. I will make a post in #support for that