What is the problem?
I'm trying to set up a custom plugin to communicate with a custom filament switcher. I've done all the steps but when I get to the command "octoprint serve" it goes fine until it freezes.
It starts normal with this:
2025-07-07 15:04:56,604 - octoprint.startup - INFO - ******************************************************************************
2025-07-07 15:04:56,605 - octoprint.startup - INFO - Starting OctoPrint 1.11.1
2025-07-07 15:04:56,606 - octoprint.startup - INFO - ******************************************************************************
2025-07-07 15:04:56,659 - octoprint.util.connectivity.connectivity_checker - INFO - Connectivity check is disabled, assuming we are online and have functional name resolution
2025-07-07 15:04:56,662 - octoprint.plugin.core - INFO - Loading plugins from /Users/josephputman/OctoPrint/src/octoprint/plugins, /Users/josephputman/Library/Application Support/OctoPrint/plugins and installed plugin packages...
2025-07-07 15:04:57,970 - octoprint.plugin.core - INFO - Plugin Pi Support Plugin (2023.10.10) did not pass check, not loading.
2025-07-07 15:04:57,988 - octoprint.plugin.core - INFO - Found 23 plugin(s) providing 23 mixin implementations, 42 hook handlers
2025-07-07 15:04:58,010 - octoprint.server.heartbeat - INFO - Starting server heartbeat, 900.0s interval
2025-07-07 15:05:03,122 - octoprint.server - INFO - Intermediary server started
2025-07-07 15:05:03,125 - octoprint.filemanager.storage - INFO - Initializing the file metadata for /Users/josephputman/Library/Application Support/OctoPrint/uploads...
2025-07-07 15:05:03,126 - octoprint.filemanager.storage - INFO - ... file metadata for /Users/josephputman/Library/Application Support/OctoPrint/uploads initialized successfully.
2025-07-07 15:05:03,127 - octoprint.server - INFO - Added new permission from plugin achievements: PLUGIN_ACHIEVEMENTS_VIEW (needs: "Need(method='role', value='plugin_achievements_view')")
2025-07-07 15:05:03,127 - octoprint.server - INFO - Added new permission from plugin achievements: PLUGIN_ACHIEVEMENTS_RESET (needs: "Need(method='role', value='plugin_achievements_reset')")
2025-07-07 15:05:03,127 - octoprint.server - INFO - Added new permission from plugin action_command_notification: PLUGIN_ACTION_COMMAND_NOTIFICATION_SHOW (needs: "Need(method='role', value='plugin_action_command_notification_show')")
2025-07-07 15:05:03,127 - octoprint.server - INFO - Added new permission from plugin action_command_notification: PLUGIN_ACTION_COMMAND_NOTIFICATION_CLEAR (needs: "Need(method='role', value='plugin_action_command_notification_clear')")
2025-07-07 15:05:03,127 - octoprint.server - INFO - Added new permission from plugin action_command_prompt: PLUGIN_ACTION_COMMAND_PROMPT_INTERACT (needs: "Need(method='role', value='plugin_action_command_prompt_interact')")
2025-07-07 15:05:03,127 - octoprint.server - INFO - Added new permission from plugin announcements: PLUGIN_ANNOUNCEMENTS_READ (needs: "Need(method='role', value='plugin_announcements_read')")
2025-07-07 15:05:03,127 - octoprint.server - INFO - Added new permission from plugin announcements: PLUGIN_ANNOUNCEMENTS_MANAGE (needs: "Need(method='role', value='plugin_announcements_read'), Need(method='role', value='plugin_announcements_manage')")
2025-07-07 15:05:03,128 - octoprint.server - INFO - Added new permission from plugin appkeys: PLUGIN_APPKEYS_ADMIN (needs: "Need(method='role', value='plugin_appkeys_admin')")
2025-07-07 15:05:03,128 - octoprint.server - INFO - Added new permission from plugin appkeys: PLUGIN_APPKEYS_GRANT (needs: "Need(method='role', value='plugin_appkeys_user')")
2025-07-07 15:05:03,128 - octoprint.server - INFO - Added new permission from plugin backup: PLUGIN_BACKUP_CREATE (needs: "Need(method='role', value='plugin_backup_create')")
2025-07-07 15:05:03,128 - octoprint.server - INFO - Added new permission from plugin file_check: PLUGIN_FILE_CHECK_RUN (needs: "Need(method='role', value='plugin_file_check_run')")
2025-07-07 15:05:03,128 - octoprint.server - INFO - Added new permission from plugin firmware_check: PLUGIN_FIRMWARE_CHECK_DISPLAY (needs: "Need(method='role', value='plugin_firmware_check_display')")
2025-07-07 15:05:03,128 - octoprint.server - INFO - Added new permission from plugin health_check: PLUGIN_HEALTH_CHECK_CHECK (needs: "Need(method='role', value='plugin_health_check_check')")
2025-07-07 15:05:03,128 - octoprint.server - INFO - Added new permission from plugin logging: PLUGIN_LOGGING_MANAGE (needs: "Need(method='role', value='plugin_logging_manage')")
2025-07-07 15:05:03,128 - octoprint.server - INFO - Added new permission from plugin pluginmanager: PLUGIN_PLUGINMANAGER_LIST (needs: "Need(method='role', value='plugin_pluginmanager_list')")
2025-07-07 15:05:03,129 - octoprint.server - INFO - Added new permission from plugin pluginmanager: PLUGIN_PLUGINMANAGER_MANAGE (needs: "Need(method='role', value='plugin_pluginmanager_manage')")
2025-07-07 15:05:03,129 - octoprint.server - INFO - Added new permission from plugin pluginmanager: PLUGIN_PLUGINMANAGER_INSTALL (needs: "Need(method='role', value='plugin_pluginmanager_install'), Need(method='role', value='plugin_pluginmanager_manage')")
2025-07-07 15:05:03,129 - octoprint.server - INFO - Added new permission from plugin softwareupdate: PLUGIN_SOFTWAREUPDATE_CHECK (needs: "Need(method='role', value='plugin_softwareupdate_check')")
2025-07-07 15:05:03,129 - octoprint.server - INFO - Added new permission from plugin softwareupdate: PLUGIN_SOFTWAREUPDATE_UPDATE (needs: "Need(method='role', value='plugin_softwareupdate_update')")
2025-07-07 15:05:03,129 - octoprint.server - INFO - Added new permission from plugin softwareupdate: PLUGIN_SOFTWAREUPDATE_CONFIGURE (needs: "Need(method='role', value='plugin_softwareupdate_configure')")
2025-07-07 15:05:03,140 - octoprint.plugins.achievements - INFO - Loading data from /Users/josephputman/Library/Application Support/OctoPrint/data/achievements/data.json
2025-07-07 15:05:03,141 - octoprint.plugins.achievements - INFO - Loading data for None from /Users/josephputman/Library/Application Support/OctoPrint/data/achievements/2025.json
2025-07-07 15:05:03,155 - octoprint.plugins.softwareupdate - INFO - Loaded version cache from disk
2025-07-07 15:05:03,859 - octoprint.util.pip - INFO - Using "/Users/josephputman/OctoPrint/venv/bin/python -m pip" as command to invoke pip
2025-07-07 15:05:04,145 - octoprint.util.pip - INFO - Version of pip is 25.1.1
2025-07-07 15:05:04,271 - octoprint.util.pip - INFO - pip installs to /Users/josephputman/OctoPrint/venv/lib/python3.13/site-packages (writable -> yes), --user flag needed -> no, virtual env -> yes
2025-07-07 15:05:04,271 - octoprint.util.pip - INFO - ==> pip ok -> yes
grep (BSD grep, GNU compatible) 2.6.0-FreeBSD
2025-07-07 15:05:04,311 - octoprint.plugins.file_check - INFO - Native grep available: True
2025-07-07 15:05:04,312 - octoprint.plugin.core - INFO - Initialized 23 plugin implementation(s)
2025-07-07 15:05:04,324 - octoprint - INFO - Installing webcam compat overlay for configured default webcam <octoprint.webcams.ProvidedWebcam object at 0x1140646e0>
2025-07-07 15:05:04,325 - octoprint.plugin.core - INFO - 23 plugin(s) registered with the system (23 bundled & 0 third party):
| Bundled Plugins (23)
| Achievements Plugin (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/achievements
| Action Command Notification Support (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/action_command_notification
| Action Command Prompt Support (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/action_command_prompt
| Announcement Plugin (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/announcements
| Anonymous Usage Tracking (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/tracking
| Application Keys Plugin (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/appkeys
| Backup & Restore (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/backup
| Classic Webcam (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/classicwebcam
| Core Wizard (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/corewizard
| Custom Control Manager (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/customcontrolmanager
| Discovery (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/discovery
| Error Tracking (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/errortracking
| Event Manager (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/eventmanager
| File Check (2024.11.12) (bundled) = /Users/josephputman/OctoPrint/venv/lib/python3.13/site-packages/octoprint_file_check
| Firmware Check (2025.5.14) (bundled) = /Users/josephputman/OctoPrint/venv/lib/python3.13/site-packages/octoprint_firmware_check
| GCode Viewer (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/gcodeviewer
| Healthcheck Plugin (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/health_check
| Hello World (1.0.0) (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/helloworld.py
| Logging (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/logging
| Plugin Manager (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/pluginmanager
| Software Update (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/softwareupdate
| Upload Manager (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/uploadmanager
| Virtual Printer (bundled) = /Users/josephputman/OctoPrint/src/octoprint/plugins/virtual_printer
| Third Party Plugins (0)
Prefix legend: ! = disabled, # = blacklisted, * = incompatible
2025-07-07 15:05:04,385 - octoprint.environment - INFO - Detected environment is Python 3.13.4 under Macos (macOS-15.4.1-x86_64-i386-64bit-Mach-O). Details:
| hardware:
| cores: 8
| freq: 1100
| ram: 8589934592
| os:
| bits: 64
| id: macos
| platform: macOS-15.4.1-x86_64-i386-64bit-Mach-O
| python:
| pip: 25.1.1
| version: 3.13.4
| virtualenv: /Users/josephputman/OctoPrint/venv
2025-07-07 15:05:04,393 - octoprint.server - INFO - Reset webasset folder /Users/josephputman/Library/Application Support/OctoPrint/generated/webassets...
2025-07-07 15:05:04,393 - octoprint.server - INFO - Reset webasset folder /Users/josephputman/Library/Application Support/OctoPrint/generated/.webassets-cache...
2025-07-07 15:05:04,394 - octoprint.server - INFO - Reset webasset folder /Users/josephputman/Library/Application Support/OctoPrint/generated/.webassets-manifest.json...
2025-07-07 15:05:04,405 - octoprint.timelapse - INFO - Enabled rendering queue processing
2025-07-07 15:05:04,607 - octoprint.server - INFO - Shutting down intermediary server...
2025-07-07 15:05:04,624 - octoprint.server - INFO - Intermediary server shut down
2025-07-07 15:05:04,626 - octoprint.events - INFO - Processing startup event, this is our first event
2025-07-07 15:05:04,626 - octoprint.events - INFO - Adding 0 events to queue that were held back before startup event
2025-07-07 15:05:04,627 - octoprint.filemanager - INFO - Adding backlog items from all storage types to analysis queue...
2025-07-07 15:05:04,629 - octoprint.server - INFO - Starting autorefresh of serial port list
2025-07-07 15:05:04,630 - octoprint.filemanager - INFO - Added 0 items from storage type "local" to analysis queue
2025-07-07 15:05:04,632 - octoprint.server.util.watchdog - INFO - Running initial scan on watched folder...
2025-07-07 15:05:04,634 - octoprint.server.util.watchdog - INFO - ... initial scan done.
2025-07-07 15:05:04,641 - octoprint.server - INFO - Serial port list was updated, refreshing the port list in the frontend
2025-07-07 15:05:05,459 - octoprint.plugins.discovery - INFO - Registered 'OctoPrint instance on Josephs-MacBook-Air.local._http._tcp.local.' for _http._tcp.local.
2025-07-07 15:05:05,502 - octoprint.plugins.healthcheck.python_eol - INFO - Fetched Python EOL data from https://get.octoprint.org/python-eol
2025-07-07 15:05:06,273 - octoprint.plugins.discovery - INFO - Registered 'OctoPrint instance on Josephs-MacBook-Air.local._octoprint._tcp.local.' for _octoprint._tcp.local.
2025-07-07 15:05:06,281 - octoprint.plugins.discovery - INFO - Registered OctoPrint instance on Josephs-MacBook-Air.local for SSDP
2025-07-07 15:05:06,287 - octoprint.server - INFO - Listening on http://0.0.0.0:5000 and http://[::]:5000
2025-07-07 15:05:06,304 - octoprint.plugins.helloworld - INFO - Hello World!
2025-07-07 15:05:06,328 - octoprint.plugins.pluginmanager - INFO - Loaded plugin repository data from disk, was still valid
2025-07-07 15:05:06,435 - octoprint.plugins.pluginmanager - INFO - Loaded notice data from disk, was still valid
2025-07-07 15:05:06,439 - octoprint.plugins.pluginmanager - INFO - Saved a current plugin export to /Users/josephputman/Library/Application Support/OctoPrint/backup_plugin_export.json
2025-07-07 15:05:06,620 - octoprint.util.pip - INFO - Using "/Users/josephputman/OctoPrint/venv/bin/python -m pip" as command to invoke pip
2025-07-07 15:05:06,620 - octoprint.util.pip - INFO - pip installs to /Users/josephputman/OctoPrint/venv/lib/python3.13/site-packages (writable -> yes), --user flag needed -> no, virtual env -> yes
2025-07-07 15:05:06,620 - octoprint.util.pip - INFO - ==> pip ok -> yes
2025-07-07 15:05:06,624 - octoprint.plugins.softwareupdate - INFO - Minimum free storage across all update relevant locations is 128.7GB. That is considered sufficient for updating.
2025-07-07 15:05:06,624 - octoprint.plugins.softwareupdate - INFO - Fetching check overlays from https://plugins.octoprint.org/update_check_overlay.json
After this though it freezes and doesn't continue. I don't know what my issue is, any help is appreciated.
What did you already try to solve it?
I've tried looking for others who have had the same problem and gone through the steps of the plugin tutorial multiple times.
Have you tried running in safe mode?
Yes
Did running in safe mode solve the problem?
No
Systeminfo Bundle
You can download this in OctoPrint's System Information dialog ... no bundle, no support!)
octoprint-systeminfo-20250707151553.zip (5.3 KB)
Additional information about your setup
OctoPrint version, OctoPi version, printer, firmware, browser, operating system, ... as much data as possible
Macos
Using a virtual environment for developing a plugin as done in the plugin tutorial.
Blockquote