Arksine / moonraker

Web API Server for Klipper
https://moonraker.readthedocs.io
GNU General Public License v3.0
1.09k stars 417 forks source link

Mainsail websocket connections to FQDN printer names fail, IPs succeed #682

Closed The--Captain closed 1 year ago

The--Captain commented 1 year ago

What happened

Moonraker appears under certain circumstances to reject websocket connections from Mainsail when FQDN is used for a printer, but accepts them when IPs only are used, unless the default behavior of the Tornado webserver is manually adjusted. Although the moonraker documentation suggests adding the local subdomain to cors_domains under the [authorization] section of moonraker.conf should alleviate cross domain errors, this does not appear to be the case (i.e. the same error is experienced even with the subdomain in cors_domain)

This appears to be due to the default configuration of the Tornado webserver, which is classifying these FQDN connections as cross-domain and rejecting them. May I humbly recommend adjusting the behavior of the Tornado webserver as mentioned here (https://www.tornadoweb.org/en/stable/websocket.html#tornado.websocket.WebSocketHandler.check_origin) to disable cross-domain websocket checks, as the local Tornado webserver content is typically inherently trusted anyway, or at least allow a more user-friendly option than currently exists (i.e. editing websocket.py in the Tornado webserver files)

The FQDN names resolve to local RFC1918 addresses within the same network, so I'm not sure why this would not work by default, but editing websocket.py as indicated resolves it

Client

Mainsail

Browser

Chrome

How to reproduce

Install Moonraker with multiple instances.

Install Mainsail.

Add printers to Mainsail using local FQDN and watch them fail to connect (A packet dump of the failed connection reveals "Cross origin websockets not allowed" error message).

Add printers to Mainsail using the local IPs that the FQDNs resolve to, and watch them succeed.

Additional information

-------------------- Log Start | Thu Jul 6 01:24:32 2023 -------------------- data_path: /home/pi/CR10_data is_default_data_path: False config_file: /home/pi/CR10_data/config/moonraker.conf startup_warnings: [] verbose: False debug: False asyncio_debug: False is_backup_config: False is_python_package: False instance_uuid: 4157ec1470f64463be64e9023fbf2dda software_version: v0.8.0-86-ga7e154f git_branch: master git_remote: origin git_repo_url: https://github.com/Arksine/moonraker.git modified_files: [] unofficial_components: [] log_file: /home/pi/CR10_data/logs/moonraker.log python_version: 3.7.3 (default, Oct 31 2022, 14:04:00) [GCC 8.3.0]

#################### Moonraker Configuration ####################

[server] host = 0.0.0.0 port = 7125 klippy_uds_address = /home/pi/CR10_data/comms/klippy.sock

[authorization] trusted_clients = 10.0.0.0/8 127.0.0.0/8 169.254.0.0/16 172.16.0.0/12 192.168.0.0/16 FE80::/10 ::1/128 cors_domains = .lan .local ://localhost ://localhost: ://my.mainsail.xyz *://app.fluidd.xyz

[octoprint_compat]

[history]

[update_manager] channel = dev refresh_interval = 168

[update_manager mainsail-config] type = git_repo primary_branch = master path = ~/mainsail-config origin = https://github.com/mainsail-crew/mainsail-config.git managed_services = klipper

[update_manager mainsail] type = web channel = stable repo = mainsail-crew/mainsail path = ~/mainsail

################################################################# All Configuration Files: /home/pi/CR10_data/config/moonraker.conf ################################################################# Unsafe Shutdown Count: 5

System Info:

python version: sys.version_info(major=3, minor=7, micro=3, releaselevel='final', serial=0) version_string: 3.7.3 (default, Oct 31 2022, 14:04:00) [GCC 8.3.0]

cpu_info cpu_count: 1 bits: 32bit processor: armv6l cpu_desc: ARMv6-compatible processor rev 7 (v6l) serial_number: 86e7ebf5 hardware_desc: BCM2835 model: Raspberry Pi Zero W Rev 1.1 total_memory: 440340 memory_units: kB

sd_info manufacturer_id: 03 manufacturer: Sandisk oem_id: 5344 product_name: SR128 product_revision: 8.6 serial_number: 3c2d8724 manufacturer_date: 2/2023 capacity: 119.1 GiB total_bytes: 127865454592

distribution name: Raspbian GNU/Linux 10 (buster) id: raspbian version: 10 version_parts: {'major': '10', 'minor': '', 'build_number': ''} like: debian codename: buster release_info: {}

virtualization virt_type: none virt_identifier: none

network

canbus

Allowed Services klipper_mcu webcamd MoonCord KlipperScreen moonraker-telegram-bot moonraker-obico sonar crowsnest octoeverywhere ratos-configurator

Systemd unit moonraker-CR10.service: unit_name: moonraker-CR10.service is_default: False manager: systemd Properties: Requires=['-.mount', 'network-online.target', 'system.slice', 'sysinit.target'] After=['system.slice', 'network-online.target', 'systemd-journald.socket', '-.mount', 'basic.target', 'sysinit.target'] SupplementaryGroups=['moonraker-admin'] EnvironmentFiles=/home/pi/CR10_data/systemd/moonraker.env ExecStart=/home/pi/moonraker-env/bin/python $MOONRAKER_ARGS WorkingDirectory=/home/pi/moonraker FragmentPath=/etc/systemd/system/moonraker-CR10.service Description=API Server for Klipper SV1 CR10 **User=pi

Systemd unit klipper-CR10.service: unit_name: klipper-CR10.service is_default: False manager: systemd Properties: Requires=['-.mount', 'sysinit.target', 'system.slice'] After=['network-online.target', '-.mount', 'system.slice', 'sysinit.target', 'systemd-journald.socket', 'basic.target'] SupplementaryGroups=[] EnvironmentFiles=/home/pi/CR10_data/systemd/klipper.env ExecStart=/home/pi/klippy-env/bin/python $KLIPPER_ARGS WorkingDirectory=/home/pi/klipper FragmentPath=/etc/systemd/system/klipper-CR10.service Description=Klipper 3D Printer Firmware SV1 **User=pi Klipper Version: v0.11.0-239-ga96608ad 2023-07-06 02:24:32,585 [websockets.py:on_close()] - Websocket Closed: ID: 2823070416 Close Code: 1001, Close Reason: None, Pong Time Elapsed: 4.89 2023-07-06 02:24:33,393 [authorization.py:_check_trusted_connection()] - Trusted Connection Detected, IP: 192.168.20.169 2023-07-06 02:24:33,421 [app.py:log_request()] - 101 GET /websocket (192.168.20.169) [_TRUSTEDUSER] 52.35ms 2023-07-06 02:24:33,436 [websockets.py:open()] - Websocket Opened: ID: 2779053232, Proxied: False, User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36, Host Name: cr10.local.sacredregion.com 2023-07-06 02:24:33,571 [file_manager.py:get_file_list()] - Updating File List ... 2023-07-06 02:24:40,355 [app.py:log_request()] - 101 GET /websocket (192.168.20.169) [_TRUSTEDUSER] 21.93ms 2023-07-06 02:24:40,375 [websockets.py:open()] - Websocket Opened: ID: 2779051088, Proxied: False, User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36, Host Name: cr10.local.sacredregion.com 2023-07-06 02:24:40,400 [websockets.py:_handle_identify()] - Websocket 2779051088 Client Identified - Name: mainsail, Version: 2.6.0, Type: web 2023-07-06 03:25:52,574 [authorization.py:_prune_conn_handler()] - Trusted Connection Expired, IP: 192.168.20.169 2023-07-06 06:13:40,378 [authorization.py:_check_trusted_connection()] - Trusted Connection Detected, IP: 192.168.20.31 2023-07-06 06:13:40,394 [app.py:log_request()] - 403 GET /websocket (192.168.20.31) [_TRUSTEDUSER] 27.03ms 2023-07-06 06:13:41,434 [app.py:log_request()] - 403 GET /websocket (192.168.20.31) [_TRUSTEDUSER] 10.86ms 2023-07-06 06:13:42,483 [app.py:log_request()] - 403 GET /websocket (192.168.20.31) [_TRUSTEDUSER] 10.86ms 2023-07-06 07:15:52,686 [authorization.py:_prune_conn_handler()] - Trusted Connection Expired, IP: 192.168.20.31 -------------------- Log Start | Thu Jul 6 11:17:49 2023 -------------------- data_path: /home/pi/CR10_data is_default_data_path: False config_file: /home/pi/CR10_data/config/moonraker.conf startup_warnings: [] verbose: False debug: False asyncio_debug: False is_backup_config: False is_python_package: False instance_uuid: 4157ec1470f64463be64e9023fbf2dda software_version: v0.8.0-86-ga7e154f git_branch: master git_remote: origin git_repo_url: https://github.com/Arksine/moonraker.git modified_files: [] unofficial_components: [] log_file: /home/pi/CR10_data/logs/moonraker.log python_version: 3.7.3 (default, Oct 31 2022, 14:04:00) [GCC 8.3.0] 2023-07-06 12:17:49,434 [confighelper.py:read_file()] - Configuration File '/home/pi/CR10_data/config/moonraker.conf' parsed, total size: 725 B 2023-07-06 12:17:49,450 [server.py:add_log_rollover_item()] - #################### Moonraker Configuration ####################

[server] host = 0.0.0.0 port = 7125 klippy_uds_address = /home/pi/CR10_data/comms/klippy.sock

[authorization] trusted_clients = 10.0.0.0/8 127.0.0.0/8 169.254.0.0/16 172.16.0.0/12 192.168.0.0/16 FE80::/10 ::1/128 cors_domains = .lan .local ://localhost ://localhost: ://my.mainsail.xyz *://app.fluidd.xyz

[octoprint_compat]

[history]

[update_manager] channel = dev refresh_interval = 168

[update_manager mainsail-config] type = git_repo primary_branch = master path = ~/mainsail-config origin = https://github.com/mainsail-crew/mainsail-config.git managed_services = klipper

[update_manager mainsail] type = web channel = stable repo = mainsail-crew/mainsail path = ~/mainsail

################################################################# All Configuration Files: /home/pi/CR10_data/config/moonraker.conf ################################################################# 2023-07-06 12:17:50,229 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/logs/rollover 2023-07-06 12:17:50,246 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.logs.rollover 2023-07-06 12:17:50,247 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/info 2023-07-06 12:17:50,311 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.info 2023-07-06 12:17:50,326 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/config 2023-07-06 12:17:50,330 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.config 2023-07-06 12:17:50,331 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/restart 2023-07-06 12:17:50,425 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.restart 2023-07-06 12:17:52,557 [server.py:load_component()] - Component (dbus_manager) loaded 2023-07-06 12:17:52,792 [server.py:add_log_rollover_item()] - Unsafe Shutdown Count: 6 2023-07-06 12:17:52,848 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/database/list 2023-07-06 12:17:52,852 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.database.list 2023-07-06 12:17:52,899 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET POST DELETE) /server/database/item 2023-07-06 12:17:52,902 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.database.get_item, server.database.post_item, server.database.delete_item 2023-07-06 12:17:52,927 [server.py:load_component()] - Component (database) loaded 2023-07-06 12:34:46,335 [file_manager.py:init()] - Using File System Observer: inotify 2023-07-06 12:34:46,609 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/files/list 2023-07-06 12:34:46,613 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.list 2023-07-06 12:34:46,614 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/files/metadata 2023-07-06 12:34:46,678 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.metadata 2023-07-06 12:34:46,694 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/files/metascan 2023-07-06 12:34:46,724 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.metascan 2023-07-06 12:34:46,745 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/files/thumbnails 2023-07-06 12:34:46,749 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.thumbnails 2023-07-06 12:34:46,803 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/files/roots 2023-07-06 12:34:46,830 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.roots 2023-07-06 12:34:46,831 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET POST DELETE) /server/files/directory 2023-07-06 12:34:46,897 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.get_directory, server.files.post_directory, server.files.delete_directory 2023-07-06 12:34:46,898 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/files/move 2023-07-06 12:34:46,901 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.move 2023-07-06 12:34:46,902 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/files/copy 2023-07-06 12:34:46,952 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.copy 2023-07-06 12:34:46,953 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/files/zip 2023-07-06 12:34:47,012 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.zip 2023-07-06 12:34:47,013 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.files.delete_file 2023-07-06 12:34:47,196 [server.py:load_component()] - Component (file_manager) loaded 2023-07-06 12:34:47,238 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /printer/print/pause 2023-07-06 12:34:47,263 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.print.pause 2023-07-06 12:34:47,264 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /printer/print/resume 2023-07-06 12:34:47,326 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.print.resume 2023-07-06 12:34:47,327 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /printer/print/cancel 2023-07-06 12:34:47,381 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.print.cancel 2023-07-06 12:34:47,382 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /printer/print/start 2023-07-06 12:34:47,430 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.print.start 2023-07-06 12:34:47,431 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /printer/restart 2023-07-06 12:34:47,435 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.restart 2023-07-06 12:34:47,498 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /printer/firmware_restart 2023-07-06 12:34:47,501 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.firmware_restart 2023-07-06 12:34:47,502 [server.py:load_component()] - Component (klippy_apis) loaded 2023-07-06 12:34:53,206 [server.py:load_component()] - Component (secrets) loaded 2023-07-06 12:34:53,483 [server.py:load_component()] - Component (template) loaded 2023-07-06 12:34:54,114 [server.py:add_log_rollover_item()] - System Info:

python version: sys.version_info(major=3, minor=7, micro=3, releaselevel='final', serial=0) version_string: 3.7.3 (default, Oct 31 2022, 14:04:00) [GCC 8.3.0]

cpu_info cpu_count: 1 bits: 32bit processor: armv6l cpu_desc: ARMv6-compatible processor rev 7 (v6l) serial_number: 86e7ebf5 hardware_desc: BCM2835 model: Raspberry Pi Zero W Rev 1.1 total_memory: 440340 memory_units: kB

sd_info manufacturer_id: 03 manufacturer: Sandisk oem_id: 5344 product_name: SR128 product_revision: 8.6 serial_number: 3c2d8724 manufacturer_date: 2/2023 capacity: 119.1 GiB total_bytes: 127865454592

distribution name: Raspbian GNU/Linux 10 (buster) id: raspbian version: 10 version_parts: {'major': '10', 'minor': '', 'build_number': ''} like: debian codename: buster release_info: {}

virtualization virt_type: none virt_identifier: none

network

canbus

Allowed Services klipper_mcu webcamd MoonCord KlipperScreen moonraker-telegram-bot moonraker-obico sonar crowsnest octoeverywhere ratos-configurator 2023-07-06 12:34:54,204 [server.py:load_component()] - Component (shell_command) loaded 2023-07-06 12:34:54,232 [machine.py:init()] - Using System Provider: systemd_dbus 2023-07-06 12:34:54,258 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/reboot 2023-07-06 12:34:54,288 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.reboot 2023-07-06 12:34:54,289 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/shutdown 2023-07-06 12:34:54,329 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.shutdown 2023-07-06 12:34:54,354 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/services/restart 2023-07-06 12:34:54,399 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.services.restart 2023-07-06 12:34:54,410 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/services/stop 2023-07-06 12:34:54,440 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.services.stop 2023-07-06 12:34:54,474 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/services/start 2023-07-06 12:34:54,499 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.services.start 2023-07-06 12:34:54,526 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /machine/system_info 2023-07-06 12:34:54,529 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.system_info 2023-07-06 12:34:54,576 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /machine/sudo/info 2023-07-06 12:34:54,579 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.sudo.info 2023-07-06 12:34:54,580 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/sudo/password 2023-07-06 12:34:54,584 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.sudo.password 2023-07-06 12:34:54,704 [server.py:load_component()] - Component (machine) loaded 2023-07-06 12:34:54,767 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/temperature_store 2023-07-06 12:34:54,779 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.temperature_store 2023-07-06 12:34:54,780 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/gcode_store 2023-07-06 12:34:54,838 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.gcode_store 2023-07-06 12:34:54,860 [server.py:load_component()] - Component (data_store) loaded 2023-07-06 12:34:54,935 [proc_stats.py:init()] - Detected 'vcgencmd', throttle checking enabled 2023-07-06 12:34:54,939 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /machine/proc_stats 2023-07-06 12:34:54,989 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.proc_stats 2023-07-06 12:34:55,008 [server.py:load_component()] - Component (proc_stats) loaded 2023-07-06 12:34:55,044 [server.py:load_component()] - Component (job_state) loaded 2023-07-06 12:34:55,134 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST DELETE) /server/job_queue/job 2023-07-06 12:34:55,163 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.job_queue.post_job, server.job_queue.delete_job 2023-07-06 12:34:55,164 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/job_queue/pause 2023-07-06 12:34:55,211 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.job_queue.pause 2023-07-06 12:34:55,237 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/job_queue/start 2023-07-06 12:34:55,241 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.job_queue.start 2023-07-06 12:34:55,298 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/job_queue/status 2023-07-06 12:34:55,302 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.job_queue.status 2023-07-06 12:34:55,303 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/job_queue/jump 2023-07-06 12:34:55,349 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.job_queue.jump 2023-07-06 12:34:55,350 [server.py:load_component()] - Component (job_queue) loaded 2023-07-06 12:34:55,690 [server.py:load_component()] - Component (http_client) loaded 2023-07-06 12:34:55,771 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/announcements/list 2023-07-06 12:34:55,810 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.announcements.list 2023-07-06 12:34:55,811 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/announcements/dismiss 2023-07-06 12:34:55,859 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.announcements.dismiss 2023-07-06 12:34:55,860 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/announcements/update 2023-07-06 12:34:55,864 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.announcements.update 2023-07-06 12:34:55,933 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST DELETE) /server/announcements/feed 2023-07-06 12:34:55,972 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.announcements.post_feed, server.announcements.delete_feed 2023-07-06 12:34:55,974 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/announcements/feeds 2023-07-06 12:34:56,038 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.announcements.feeds 2023-07-06 12:34:56,039 [server.py:load_component()] - Component (announcements) loaded 2023-07-06 12:34:56,155 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/webcams/list 2023-07-06 12:34:56,210 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.webcams.list 2023-07-06 12:34:56,212 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET POST DELETE) /server/webcams/item 2023-07-06 12:34:56,283 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.webcams.get_item, server.webcams.post_item, server.webcams.delete_item 2023-07-06 12:34:56,289 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/webcams/test 2023-07-06 12:34:56,337 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.webcams.test 2023-07-06 12:34:56,338 [server.py:load_component()] - Component (webcam) loaded 2023-07-06 12:34:56,382 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: connection.send_event 2023-07-06 12:34:56,412 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/extensions/list 2023-07-06 12:34:56,466 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.extensions.list 2023-07-06 12:34:56,479 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/extensions/request 2023-07-06 12:34:56,483 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.extensions.request 2023-07-06 12:34:56,529 [server.py:load_component()] - Component (extensions) loaded 2023-07-06 12:34:56,993 [authorization.py:init()] - Authorization Configuration Loaded Trusted Clients: 10.0.0.0/8 127.0.0.0/8 169.254.0.0/16 172.16.0.0/12 192.168.0.0/16 fe80::/10 ::1/128 CORS Domains: ..lan ..local .://localhost .://localhost:. .://my.mainsail.xyz .*://app.fluidd.xyz 2023-07-06 12:34:57,019 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /access/login 2023-07-06 12:34:57,022 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.login 2023-07-06 12:34:57,073 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /access/logout 2023-07-06 12:34:57,097 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.logout 2023-07-06 12:34:57,098 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /access/refresh_jwt 2023-07-06 12:34:57,169 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.refresh_jwt 2023-07-06 12:34:57,173 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET POST DELETE) /access/user 2023-07-06 12:34:57,198 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.get_user, access.post_user, access.delete_user 2023-07-06 12:34:57,226 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /access/users/list 2023-07-06 12:34:57,229 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.users.list 2023-07-06 12:34:57,269 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /access/user/password 2023-07-06 12:34:57,272 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.user.password 2023-07-06 12:34:57,273 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET POST) /access/api_key 2023-07-06 12:34:57,309 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.get_api_key, access.post_api_key 2023-07-06 12:34:57,310 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /access/oneshot_token 2023-07-06 12:34:57,357 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.oneshot_token 2023-07-06 12:34:57,358 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /access/info 2023-07-06 12:34:57,361 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: access.info 2023-07-06 12:34:57,362 [server.py:load_component()] - Component (authorization) loaded 2023-07-06 12:34:57,481 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET DELETE) /server/history/job 2023-07-06 12:34:57,518 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.history.get_job, server.history.delete_job 2023-07-06 12:34:57,519 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/history/list 2023-07-06 12:34:57,570 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.history.list 2023-07-06 12:34:57,589 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /server/history/totals 2023-07-06 12:34:57,593 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.history.totals 2023-07-06 12:34:57,649 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /server/history/reset_totals 2023-07-06 12:34:57,654 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: server.history.reset_totals 2023-07-06 12:34:57,685 [server.py:load_component()] - Component (history) loaded 2023-07-06 12:34:59,164 [base_deploy.py:log_info()] - Git Repo moonraker: Detected virtualenv: /home/pi/moonraker-env 2023-07-06 12:34:59,321 [base_deploy.py:log_info()] - Git Repo klipper: Detected virtualenv: /home/pi/klippy-env 2023-07-06 12:34:59,481 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/update/moonraker 2023-07-06 12:34:59,509 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.update.moonraker 2023-07-06 12:34:59,510 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/update/klipper 2023-07-06 12:34:59,569 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.update.klipper 2023-07-06 12:34:59,570 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/update/system 2023-07-06 12:34:59,573 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.update.system 2023-07-06 12:34:59,574 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/update/client 2023-07-06 12:34:59,618 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.update.client 2023-07-06 12:34:59,619 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/update/full 2023-07-06 12:34:59,678 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.update.full 2023-07-06 12:34:59,679 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /machine/update/status 2023-07-06 12:34:59,683 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.update.status 2023-07-06 12:34:59,684 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/update/refresh 2023-07-06 12:34:59,719 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.update.refresh 2023-07-06 12:34:59,720 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /machine/update/recover 2023-07-06 12:34:59,765 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: machine.update.recover 2023-07-06 12:34:59,776 [server.py:load_component()] - Component (update_manager) loaded 2023-07-06 12:34:59,823 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /api/version 2023-07-06 12:34:59,884 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /api/server 2023-07-06 12:34:59,970 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /api/login 2023-07-06 12:34:59,973 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /api/currentuser 2023-07-06 12:35:00,013 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /api/settings 2023-07-06 12:35:00,065 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /api/job 2023-07-06 12:35:00,072 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /api/printer 2023-07-06 12:35:00,127 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /api/printer/command 2023-07-06 12:35:00,141 [app.py:register_local_handler()] - Registering HTTP Endpoint: (GET) /api/printerprofiles 2023-07-06 12:35:00,201 [app.py:register_local_handler()] - Registering HTTP Endpoint: (POST) /api/files/moonraker/(?P.+) 2023-07-06 12:35:00,231 [server.py:load_component()] - Component (octoprint_compat) loaded 2023-07-06 12:35:00,637 [server.py:_initialize_component()] - Performing Component Post Init: [dbus_manager] 2023-07-06 12:35:01,571 [server.py:_initialize_component()] - Performing Component Post Init: [file_manager] 2023-07-06 12:35:01,702 [server.py:_initialize_component()] - Performing Component Post Init: [machine] 2023-07-06 12:35:01,716 [machine.py:validation_init()] - Installation version in database up to date 2023-07-06 12:35:12,319 [machine.py:check_virt_status()] - No Virtualization Detected 2023-07-06 12:35:12,649 [machine.py:_find_public_ip()] - Detected Local IP: 192.168.20.59 2023-07-06 12:35:12,733 [webcam.py:_set_default_host_ip()] - Default public webcam address set: http://192.168.20.59 2023-07-06 12:35:14,268 [machine.py:extract_service_info()] - Detected alternate unit name for moonraker: moonraker-CR10.service 2023-07-06 12:35:15,033 [server.py:add_log_rollover_item()] - Systemd unit moonraker-CR10.service: unit_name: moonraker-CR10.service is_default: False manager: systemd Properties: Requires=['sysinit.target', 'network-online.target', 'system.slice', '-.mount'] After=['network-online.target', 'basic.target', '-.mount', 'sysinit.target', 'system.slice', 'systemd-journald.socket'] SupplementaryGroups=['moonraker-admin'] EnvironmentFiles=/home/pi/CR10_data/systemd/moonraker.env ExecStart=/home/pi/moonraker-env/bin/python $MOONRAKER_ARGS WorkingDirectory=/home/pi/moonraker FragmentPath=/etc/systemd/system/moonraker-CR10.service Description=API Server for Klipper SV1 CR10 User=pi 2023-07-06 12:35:15,086 [server.py:_initialize_component()] - Performing Component Post Init: [proc_stats] 2023-07-06 12:35:15,087 [server.py:_initialize_component()] - Performing Component Post Init: [announcements] 2023-07-06 12:35:15,137 [server.py:_initialize_component()] - Performing Component Post Init: [webcam] 2023-07-06 12:35:15,151 [webcam.py:_set_default_host_ip()] - Default public webcam address set: http://192.168.20.59 2023-07-06 12:35:15,192 [server.py:_initialize_component()] - Performing Component Post Init: [klippy_connection] 2023-07-06 12:35:15,210 [server.py:add_log_rollover_item()] - Systemd unit klipper-CR10.service: unit_name: klipper-CR10.service is_default: False manager: systemd Properties: Requires=['-.mount', 'sysinit.target', 'system.slice'] After=['network-online.target', '-.mount', 'system.slice', 'sysinit.target', 'systemd-journald.socket', 'basic.target'] SupplementaryGroups=[] EnvironmentFiles=/home/pi/CR10_data/systemd/klipper.env ExecStart=/home/pi/klippy-env/bin/python $KLIPPER_ARGS WorkingDirectory=/home/pi/klipper FragmentPath=/etc/systemd/system/klipper-CR10.service Description=Klipper 3D Printer Firmware SV1 User=pi 2023-07-06 12:35:15,214 [server.py:_initialize_component()] - Performing Component Post Init: [authorization] 2023-07-06 12:35:15,253 [server.py:_initialize_component()] - Performing Component Post Init: [update_manager] 2023-07-06 12:35:19,231 [update_manager.py:initialize()] - PackageDeploy: Using PackageKit Provider 2023-07-06 12:35:19,264 [git_deploy.py:log_repo_info()] - Git Repo moonraker Detected: Owner: Arksine Repository Name: moonraker Path: /home/pi/moonraker Remote: origin Branch: master Remote URL: https://github.com/Arksine/moonraker.git Recovery URL: https://github.com/Arksine/moonraker.git Current Commit SHA: a7e154fbe4e1f3dec4fc051e24af2d6188d979bd Upstream Commit SHA: a7e154fbe4e1f3dec4fc051e24af2d6188d979bd Current Version: v0.8.0-86 Upstream Version: v0.8.0-86 Is Dirty: False Is Detached: False Commits Behind: 0 Diverged: False 2023-07-06 12:35:19,290 [git_deploy.py:log_repo_info()] - Git Repo klipper Detected: Owner: Klipper3d Repository Name: klipper Path: /home/pi/klipper Remote: origin Branch: master Remote URL: https://github.com/Klipper3d/klipper Recovery URL: https://github.com/Klipper3d/klipper Current Commit SHA: a96608add40e316f25f15d9c9d1c1fbd86dbbebe Upstream Commit SHA: a96608add40e316f25f15d9c9d1c1fbd86dbbebe Current Version: v0.11.0-239 Upstream Version: v0.11.0-239 Is Dirty: False Is Detached: False Commits Behind: 0 Diverged: False 2023-07-06 12:35:19,320 [git_deploy.py:log_repo_info()] - Git Repo mainsail-config Detected: Owner: mainsail-crew Repository Name: mainsail-config Path: /home/pi/mainsail-config Remote: origin Branch: master Remote URL: https://github.com/mainsail-crew/mainsail-config.git Recovery URL: https://github.com/mainsail-crew/mainsail-config.git Current Commit SHA: 76f0b75c18d413bb1f2d735c259afae3fb4a8f68 Upstream Commit SHA: 76f0b75c18d413bb1f2d735c259afae3fb4a8f68 Current Version: v1.0.0-13 Upstream Version: v1.0.0-13 Is Dirty: False Is Detached: False Commits Behind: 0 Diverged: False 2023-07-06 12:35:19,500 [update_manager.py:_log_client_info()] - Web Client mainsail Detected: Repo: mainsail-crew/mainsail Channel: stable Path: /home/pi/mainsail Local Version: v2.6.0 Remote Version: v2.6.0 Valid: True Fallback Client Detected: True Pre-release: False Download Url: https://github.com/mainsail-crew/mainsail/releases/download/v2.6.0/mainsail.zip Download Size: 2098583 Content Type: application/zip 2023-07-06 12:35:19,650 [extensions.py:start_unix_server()] - Creating Unix Domain Socket at '/home/pi/CR10_data/comms/moonraker.sock' 2023-07-06 12:35:19,703 [server.py:start_server()] - Starting Moonraker on (0.0.0.0, 7125), Hostname: raspberrypi 2023-07-06 12:35:19,739 [app.py:listen()] - SSL Certificate/Key not configured, aborting HTTPS Server startup 2023-07-06 12:35:20,029 [klippy_connection.py:_do_connect()] - Klippy Connection Established 2023-07-06 12:35:21,822 [machine.py:extract_service_info()] - Detected alternate unit name for klipper: klipper-CR10.service 2023-07-06 12:35:22,658 [server.py:add_log_rollover_item()] - Systemd unit klipper-CR10.service: unit_name: klipper-CR10.service is_default: False manager: systemd Properties: Requires=['system.slice', 'sysinit.target', '-.mount'] After=['-.mount', 'network-online.target', 'systemd-journald.socket', 'system.slice', 'basic.target', 'sysinit.target'] SupplementaryGroups=[] EnvironmentFiles=/home/pi/CR10_data/systemd/klipper.env ExecStart=/home/pi/klippy-env/bin/python $KLIPPER_ARGS WorkingDirectory=/home/pi/klipper FragmentPath=/etc/systemd/system/klipper-CR10.service Description=Klipper 3D Printer Firmware SV1 **User=pi 2023-07-06 12:35:22,981 [server.py:add_log_rollover_item()] - Klipper Version: v0.11.0-239-ga96608ad 2023-07-06 12:35:23,121 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/info 2023-07-06 12:35:23,138 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.info 2023-07-06 12:35:23,139 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/emergency_stop 2023-07-06 12:35:23,168 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.emergency_stop 2023-07-06 12:35:23,169 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/gcode/help 2023-07-06 12:35:23,173 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.gcode.help 2023-07-06 12:35:23,174 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/gcode/script 2023-07-06 12:35:23,198 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.gcode.script 2023-07-06 12:35:23,199 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/gcode/restart 2023-07-06 12:35:23,231 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.gcode.restart 2023-07-06 12:35:23,232 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/gcode/firmware_restart 2023-07-06 12:35:23,257 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.gcode.firmware_restart 2023-07-06 12:35:23,258 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/objects/list 2023-07-06 12:35:23,283 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.objects.list 2023-07-06 12:35:23,284 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/objects/query 2023-07-06 12:35:23,316 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.objects.query 2023-07-06 12:35:23,318 [app.py:register_remote_handler()] - Registering HTTP endpoint: (GET POST) /printer/objects/subscribe 2023-07-06 12:35:23,321 [websockets.py:register_api_handler()] - Registering Websocket JSON-RPC methods: printer.objects.subscribe 2023-07-06 12:35:23,389 [klippy_connection.py:_request_initial_subscriptions()] - Webhooks Subscribed 2023-07-06 12:35:23,425 [klippy_connection.py:_request_initial_subscriptions()] - GCode Output Subscribed 2023-07-06 12:35:23,476 [klippy_connection.py:_check_ready()] - Include file '/home/pi/CR10_data/config/../PA_TUNER.macro.update2a' does not exist

Once the underlying issue is corrected, use the "RESTART" command to reload the config and restart the host software. Printer is halted

The--Captain commented 1 year ago

...and this is why you check your syntax TEN times instead of telling yourself that you checked it nine times and there's no way you're going to look stupid on the moonraker github.

Syntax error in the [authorization] section prevented mitigation of this error from happening.

This is a non-issue.