New release candidate: 1.3.9rc1

I’m happy to present you the first release candidate of the 1.3.9 release!

The changelog is once again on the lengthy side thanks to the maintenance releases now being spread apart a bit further. Don’t let that scare you though 😉

Here are some highlights from the release notes:

  • A very annoying race condition causing OctoPrint to get stuck in “Cancelling” or “Pausing” state was identified and fixed. See also this FAQ entry which outlines the workarounds for this issue if you didn’t yet come across them.
  • An observed incompatibility with pip versions 10 and after that caused issues with plugin installation/uninstallation was also identified and fixed (see here for details).
  • Added support for plugins to override GCODE analysis provider and live print time estimation with their own implementations through two new hooks octoprint.filemanager.analysis.factory and octoprint.printer.estimation.factory. Feel free to go nuts with this.
  • Allowed more granular control over components to be upgraded through the software update plugin in its settings dialog. Instead of performing an “all-or-nothing” update, you may now apply each update individually.
  • Added detection for more unsafe firmwares to the bundled Printer Safety Plugin:
    • Anycubic Mega
    • Malyan M200
    • CR-10S
    • all Repetier firmware versions prior to 0.92
    • any firmware that reports the THERMAL_PROTECTION capability as disabled to thermal protection warning (see also MarlinFirmware/Marlin#10465)
  • Added a new bundled plugin “Action Command Prompt support” that allows printer firmware to trigger confirmation/decision dialogs in OctoPrint (e.g. for filament swaps).
  • The bundled web server Tornado was updated to a newer version to work around issues with client IP logging and other things. This also led to the discovery a heads-up for anyone running OctoPrint behind NGINX - please see the release notes for details on this.
  • As announced with the release of OctoPrint 1.3.6, the legacy plugin bundling flag has now been removed again. Plugin authors, please make sure to check your plugins if you haven’t done that so far!
  • And of course there were also quite a number of bugs fixed reported for earlier versions, e.g. the logged in user switching to _api if the general API key was used to access the API in the same browser instance, inconsistencies in the port and baud rate lists between connection and settings dialog, a race condition in resend handling in case of missing oks, plus various fixes of typos and grammar in the documentation.

You can find the full changelog and release notes as usual on Github.

Special thanks to everyone who contributed to this release candidate, especially @benlye, @dadosch, @dforsi, @ganey, @malnvenshorn, @ntoff, @tedder and @vitormhenrique for their PRs.

If you are tracking the “Maintenance RC” release channel, you should soon get an update notification just like you are used to from stable releases.

If you want to help test this release candidate and aren’t yet tracking the “Maintenance RCs” release channel, you can find information on how to switch in this guide (also linked below).

If you are not interested in helping to test release candidates, just ignore this post, 1.3.9 stable will hit your instance via the usual way once reports indicate that it’s ready 😊

Please provide feedback on this RC. For general feedback you can use this ticket on the tracker. The information that everything works fine for you is also valuable feedback 😄 For bug reports please follow “How to file a bug report”.

Depending on how the feedback for this release candidate turns out, I’ll either look into releasing 1.3.9 or fix any observed regressions and push out a new release candidate ASAP.


This is a companion discussion topic for the original entry at

OctoPrint 1.3.9rc1 testing

Tester: OutsourcedGuru
Printer: Robo C2
Extruders: 1
Bed: unheated
Workstation: OSX High Sierra 10.13.4, Safari 11.1, 13" display on MacBook Air @ 1400 x 900
Version: 1.3.9rc1

  • To me, some of the screens appear to be vertically-truncated during the Setup Wizard: Access Control, Connectivity Check, Setup Printer Profile on the Print Bed and Volume tab - Screencaps follow. I might suggest using the same height as the main Settings dialog box since that appears to nicely use the available vertical space without truncation.
  1. Imaged onto 16GB microSD
  2. Edited /boot/octopi-wpa-supplicant.txt with wi-fi credentials and country code
  3. Brought up Raspberry Pi 3B, Robo C2 printer with image
  4. Remoted in using the hostname from OSX, running sudo raspi-config to change the wi-fi country code and the timezone
  5. http://octopi.local resolved in a browser
  6. Setup Wizard
    1. Disable Access Control [Oversized vertically]
    2. Disable Connectivity Check [Oversized vertically]
    3. Enable Plugin Blacklist Processing
    4. Skip slicing profile import
    5. Setup printer profile [Oversized vertically - Print Bed and Volume]
  7. Continue to main screen
  8. Connect button works
  9. OctoPrint 1.3.8 running on OctoPi 0.15.1 reported at bottom of page
  10. Webcam displays on Control tab [Pi NoIR Camera v2]
  11. Settings -> Software Update -> Wrench -> Maintenance RCs
  12. Update Available popup -> "OctoPrint: 1.3.9rc1 (release candidate)" -> Update Now
  13. After reload, OctoPrint 1.3.9rc1 running on OctoPi 0.15.1 reported at bottom of page
  14. Connect button works
  15. Setting 5-degree offset on Temperature tab appears to work
  16. Changing Settings -> Temperatures -> PLA = 190 appears to save new default
  17. Noting the temperature, it doesn't look like 195 is the target; target reached
  18. Deleted 5-degree offset using Trashcan
  19. Set the 5-degree offset again, no affect on temperature from preset
  20. Upload file via Upload button
  21. Additional Info button inoperable until 60 seconds later
  22. Clicking Additional Info button displays "Estimated print time: 29 minutes", etc
  23. Select file
  24. Print Time Left: 29 minutes
  25. Cancel [Air print: bed did not move from bottom of printer]
  26. Control tab -> Home Z button, Home X/Y button
  27. Print [Noting that the taget temperature this time is 195]
  28. [Noting that all of my earlier GCODE Scripts are missing] 9:13 start
  29. Finished at "Print Time: 00:38:52" with a perfectly-printed part [The hotend was positioned right at the top of the part when I returned]
  30. Settings -> GCODE Scripts -> Edit
  31. Drag/drop gcode file works
  32. Ten-minute part indicates "1 hour" left after 3 minutes into it @ 5%, "50 minutes" @ 7%, "40 minutes" @ 9%, "30 minutes" @ 14%, "23 minutes" @ 20%, "11 minutes" @ 50%, "4 minutes" @ 75% = "Print Time: 00:10:34"
Send: M115
Recv: FIRMWARE_NAME:Marlin 1.1.7-C2 (Github) SOURCE_CODE_URL: PROTOCOL_VERSION:C2 MACHINE_TYPE:RoboC2 EXTRUDER_COUNT:1 UUID:cede2a2f-41a2-4748-9b12-c55c62f367ff EMERGENCY_CODES:M108,M112,M410