After 12 months in development and a further 3 months of community testing during the release candidate phase, it makes me feel very happy (and to be honest also relieved) to finally release 1.11.0 for good!

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 💕

As always with a new version this new release brings not only bug and security fixes but also improvements and a whole bunch of new features. As a consequence, the changelog has grown quite large, too large to include here. But don’t you worry, we’ll briefly take a look at some of the highlights.

Before we get to that though, let me get one big heads-up out of the way, which is also included below:

  • OctoPrint 1.11.x is the last version of OctoPrint to support Python 3.7 and 3.8. As further detailed in the heads-up post below, both versions have now been end-of-life for a while, and due to third-party dependencies rapidly dropping support, it becomes more and more difficult to keep supporting these outdated Python versions. As a consequence, OctoPrint 1.11.x is the final OctoPrint version to support both Python 3.7 and 3.8. OctoPrint 1.12.0+ will require at least Python 3.9. A new health check has been added to OctoPrint 1.11.0 that will tell you if you are affected by this or future drops of support, and link you the related FAQ entry. You can read more on that in the full heads-up below.

Now that is done, let’s take a look at some of the highlights, shall we?

  • OctoPrint now has a full fledged Upload Manager plugin bundled! It allows easy management of your uploaded files, including bulk copying, moving and removing as well as renaming, slicing, uploading to your printer etc. This new bundled plugin replaces the sadly no longer maintained File Manager plugin by Marc Hannapel with a new UI and UX and updated logic.

  • Another popular but no longer mainted plugin by Marc, the Custom Control Editor, has also been revamped as the bundled Custom Control Manager which now provides you with a built-in UI to quickly create and manage your own custom controls that will be shown on the Control tab. A core feature since the first versions of OctoPrint over a decade ago, it was time to give this full UI configuration support in core!

  • For the security conscious people out there it will be some good news to hear that there’s now support for adding Two-Factor Authentication through plugins, and a first plugin supporting TOTP has already been made available on the official plugin repository!

  • A new Health Check Plugin will will alert you of any issues with your runtime environment and OctoPrint installation. For now, it checks the following things:

    • sufficient file system storage across all configured data folders
    • OctoPrint’s version not being more than two minor versions behind
    • Python version not being EOL or close to EOL

    Health checks are kept as unobstrusive as possible in the shape of a little navbar icon. Only high priority issues will cause a popup. Currently that only involves Python versions that are already EOL, and those will only be shown every 30 days (per browser, by the use of a browser cookie).

    Additional health checks can be added by plugins through the octoprint.plugin.health_check.get_additional_checks hook.

    A forthcoming update of the bundled PiSupport Plugin adds the results of the throttle check, model support and default password use to the set of health checks.

  • As there are some hardware webcams out there that require authentication credentials, OctoPrint now supports configuring Basic, Digest or Bearer Token based credentials for the webcam snapshot URL.

  • An way less intrusive reload popup has been added that replaces the modal reload overlay on plugin/settings changes and should cause less annoyance. Add

  • Similar as other software out there, OctoPrint now will show you a heads-up about the risks of Third Party Plugins when you try to install one for the first time. This is not to scare you away from using Third Party Plugins in any way, but given that in theory someone could write a malicious one, we figured it might be a good idea to tell you about the risks and what we do to reduce them.

  • In the plugin repository browser built into the Plugin Manager, OctoPrint will now also allow you to filter out abandoned plugins and will also show you whether a plugin is commercial (and if so whether it has a free tier) and whether it requires some kind of cloud access. We want you to be able to make an informed decision on whether to install such plugins right from within the repository browser, without having to navigate to the official plugin repository.

  • OctoPrint now supports Python 3.13.

  • Two security issues have been fixed, both reponsibly disclosed by @jacopotediosi:
    • One extremely minor path traversal bug in validate_local_redirect that could have been abused through some manipulated link to redirect a login to a path on the same server as OctoPrint beyond those marked as safe, e.g. a malicious plugin or an external app on another path.
    • One moderate vulnerability allowing bypassing of the login redirect to access the HTML content of certain frontend pages. As data is typically loaded via API requests with additional user authentication, this had a minor practical impact, however this held the risk of potential future modifications introducing further security vulnerabilities and thus was patched. This is further tracked in this GitHub Security Advisory and CVE-2025-32788.
  • Several bugs have been fixed, including the offset of the chamber temperature not being properly applied, logging of exceptions on the WSGI layer, error reporting in case of upload issues, a bug that caused the reload overlay to show way more often than actually necessary, and more.

  • … and plenty other things!

Issues while updating?

On every new OctoPrint release we see some people run into the same issues with outdated or broken environments all over again. If you encounter a problem during update, please check this collection of the most common issues encountered over the past couple of release cycles first, and test if the included fixes solve your problem.

Also make sure to check any of the heads-ups or plugin incompatibilities listed below.

Heads-ups

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: OctoPrint 1.11.x is the last version of OctoPrint to support Python 3.7 and 3.8

Python 3.7 has now been EOL since June 27th 2023, and the maintenance overhead caused by still having to support it is becoming unfeasible. Python 3.8 has now been EOL since October 31st 2024, and it is to be expected that the maintenance overhead will further rise due to that.

As a consequence, OctoPrint 1.11.x is the final OctoPrint version to support both Python 3.7 and 3.8. OctoPrint 1.12.0+ will require at least Python 3.9.

How do you know if you will be affected and need to update? A newly added healthcheck mechanism has been added that will now alert you if your environment is outdated and about to be left behind, an a new FAQ entry is in place to help you figure out how to update your runtime environment.

This will be kept updated, so that you will also receive early warnings about future deprecations this way.

Heads-up: OctoPrint will now auto-escape all internal templates, plugin authors should opt-in as well!

Starting with OctoPrint 1.11.0, OctoPrint will ship with auto-escaping all injected template variables and other included expressions in its template system. For 1.11.0 and 1.12.0, this will only be done for bundled plugins and those third party plugins that have opted into autoescaping. Starting with OctoPrint 1.13.0 however, third party plugins will have to opt out in order to not have autoescaping enabled on their templates.

A new entry has been added to the FAQ that has further details.

Heads-up: `WebcamProviderPlugin.take_webcam_snapshot` has gotten its parameters fixed

If you are the maintainer of a third party plugin using the WebcamProviderPlugin mixin and have implemented its take_snapshot method, be advised that an implementation error in OctoPrint has been fixed and the implementation aligned with the documentation: the method will now be called with the webcamName parameter being a string containing the name of the requested webcam, as documented, not a full webcam configuration object as previously wrongly implemented.

Thanks

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

A special Thank You! to these 14 fine people for their PRs, and an extra warm welcome to our 10 first-time contributors! 🎉

Also another Thank you! to Jacopo Tediosi for the responsible disclosure of vulnerabilities fixed in this release.

And last but not least, a big shoutout to everyone who reported back on the release candidates this time: @AndKe, @b-morgan, @billygr, @ckuethe, @EddyMI3d, @fly74, @fonso2616, @jneilliii, @larp-welt, @pooh22 and @XxInvictus.

Insights

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

  • 1.10.0rc3 (2025-02-18): 450 instances, 9371h or 1.1 years of accumulative printing time
  • 1.10.0rc4 (2025-03-11): 274 instances, 3134h or 4.4 months of accumulative printing time
  • 1.10.0rc5 (2025-03-18): 342 instances, 5050h or 7.0 months of accumulative printing time
  • 1.10.0rc6 (2025-04-01): 100 instances, 481h of accumulative printing time
  • 1.10.0rc7 (2025-04-03): 328 instances, 4183h or 5.8 months 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:
  • 1.10.0rc1 (2025-01-28)
  • 1.10.0rc2 (2025-02-03)

Overall there were 876 instances that participated in the RC testing phase and which collectively completed 24792h or 2.8 years of print jobs.

Further Information

If connected to the internet, OctoPrint will allow you to apply this update automatically via an update notification. It may take up to 24h for this 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 your update fails chances are high you are running into one of the common update issues listed with fixes here, so please go through that FAQ entry first.

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

Images

The button to launch the new Upload Manager in the file list sidebar.
The newly added Upload Manager.
The newly added Custom Control Manager.
Example of a two-factor authentication request on the login.
Health checks allow you to get notified about issues with your installation.
You can now enter credentials for accessing the webcam snapshot URL.
The new reload popup notification that in large parts replaces the blocking reload modal.
The new information popup about third party plugins.

Discuss!