# Mainsail doesn't connect to Moonraker after Klipper update

**URL:** <https://klipper.discourse.group/t/mainsail-doesnt-connect-to-moonraker-after-klipper-update/15641>\
**Category:** General Discussion\
**Created:** [April 10, 2024, 2:16am UTC](https://klipper.discourse.group/t/mainsail-doesnt-connect-to-moonraker-after-klipper-update/15641 "2024-04-10T02:16:50Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![ron\_swan](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/ron_swan/32/11217_2.png) [@ron\_swan](https://klipper.discourse.group/u/ron_swan)\
**Post date:** [April 10, 2024, 2:16am UTC](https://klipper.discourse.group/t/mainsail-doesnt-connect-to-moonraker-after-klipper-update/15641/1 "2024-04-10T02:16:50Z")

</div>

### Basic Information:

Printer Model: EnderXY  
 MCU / Printerboard: BTT SKR Mini E3V3 & Creality 4.2.7  
 Host / SBC: RPi 4  
 klippy.log (plus moonraker.log and mainsail-error.log):  
[Desktop.zip](https://klipper.discourse.group/uploads/short-url/zdKXbePmJQO4I3QJeBid9emH66a.zip) (1.3 MB)

### Describe your issue:

Everything was working fine before I updated Klipper to the most recent version. Now, I can only get Mainsail to connect to Moonraker when the printer is off. Once I power on the mainboards and restart Klipper, Mainsail times-out on “Initializing” and says it can’t connect to Moonraker.

Edit: This seems like a Mainsail issue. I can connect to Moonraker via Mobileraker and KlipperScreen and use the printer normally as long as Mainsail isn’t open anywhere.

What I’ve tried so far:  
\*Uninstalling/reinstalling Moonraker  
\*Uninstalling/reinstalling Mainsail  
\*Rolling back Klipper several versions with KIAUH

---

<div class="post-metadata">

**Author:** ![TheFuzzyGiggler](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/thefuzzygiggler/32/12313_2.png) [@TheFuzzyGiggler](https://klipper.discourse.group/u/TheFuzzyGiggler)\
**Post date:** [April 10, 2024, 10:57am UTC](https://klipper.discourse.group/t/mainsail-doesnt-connect-to-moonraker-after-klipper-update/15641/2 "2024-04-10T10:57:17Z")

</div>

```auto
  File "/home/pi/klipper/klippy/klippy.py", line 217, in run
    self.reactor.run()
  File "/home/pi/klipper/klippy/reactor.py", line 292, in run
    g_next.switch()
  File "/home/pi/klipper/klippy/reactor.py", line 340, in _dispatch_loop
    timeout = self._check_timers(eventtime, busy)
  File "/home/pi/klipper/klippy/reactor.py", line 158, in _check_timers
    t.waketime = waketime = t.callback(eventtime)
  File "/home/pi/klipper/klippy/webhooks.py", line 496, in _do_query
    res = query[obj_name] = po.get_status(eventtime)
  File "/home/pi/klipper/klippy/extras/manual_stepper.py", line 110, in get_status
    'enabled': self.steppers[0].is_motor_enabled()}
AttributeError: 'MCU_stepper' object has no attribute 'is_motor_enabled'
Transition to shutdown state: Unhandled exception during run

```

I was going to ask if you were running custom code but it looks like the manual\_stepper class was updated last week and is now throwing an error.

@koconnor - I believe

` 'enabled': self.steppers[0].is_motor_enabled()}`

is meant to be

```
def get_status(self, eventtime):
    return {'position': self.rail.get_commanded_position(),
            'enabled': self.stepper_enable.lookup_enable(self.steppers[0]).is_motor_enabled()}

```

But manual stepper doesn’t implement an instance of stepper\_enable so I did it the long way in the comment below as a fix.

---

<div class="post-metadata">

**Author:** ![TheFuzzyGiggler](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/thefuzzygiggler/32/12313_2.png) [@TheFuzzyGiggler](https://klipper.discourse.group/u/TheFuzzyGiggler)\
**Post date:** [April 10, 2024, 11:06am UTC](https://klipper.discourse.group/t/mainsail-doesnt-connect-to-moonraker-after-klipper-update/15641/3 "2024-04-10T11:06:57Z")

</div>

[manual\_stepper.zip](https://klipper.discourse.group/uploads/short-url/6a3mylzTxLNou2ybv01WSOM9Q3U.zip) (1.8 KB)

@ron_swan - Drop the Python file in the zip into ~/klipper/klippy/extras.

I changed

```auto
def get_status(self, eventtime):
        return {'position': self.rail.get_commanded_position(),
                'enabled': self.steppers[0].is_motor_enabled()}

```

to

```auto
    def get_status(self, eventtime):
        return {'position': self.rail.get_commanded_position(),
                'enabled': self.printer.lookup_object('stepper_enable').lookup_enable(self.steppers[0]).is_motor_enabled()}

```

Which I believe was the intention in the first place. It’s a quick and dirty fix.  
If it doesn’t work let me know and attach a new klippy.log and I’ll see what’s up.

---

<div class="post-metadata">

**Author:** ![ron\_swan](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/ron_swan/32/11217_2.png) [@ron\_swan](https://klipper.discourse.group/u/ron_swan)\
**Post date:** [April 10, 2024, 12:11pm UTC](https://klipper.discourse.group/t/mainsail-doesnt-connect-to-moonraker-after-klipper-update/15641/4 "2024-04-10T12:11:44Z")

</div>

That didn’t help, unfortunately.

[klippy.log](https://klipper.discourse.group/uploads/short-url/7BGhoOInvh6dez5fZw6ul5eyKad.log) (496.3 KB)

---

<div class="post-metadata">

**Author:** ![TheFuzzyGiggler](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/thefuzzygiggler/32/12313_2.png) [@TheFuzzyGiggler](https://klipper.discourse.group/u/TheFuzzyGiggler)\
**Post date:** [April 10, 2024, 12:42pm UTC](https://klipper.discourse.group/t/mainsail-doesnt-connect-to-moonraker-after-klipper-update/15641/5 "2024-04-10T12:42:43Z")

</div>

[manual\_stepper.zip](https://klipper.discourse.group/uploads/short-url/3kZLO5B9KgQ4LGTDLp4WTJl9GDl.zip) (1.8 KB)

I caused another error by being quick and dirty, try this one, It reverts the manual\_stepper back to before the status function was added

---

<div class="post-metadata">

**Author:** ![TheFuzzyGiggler](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/thefuzzygiggler/32/12313_2.png) [@TheFuzzyGiggler](https://klipper.discourse.group/u/TheFuzzyGiggler)\
**Post date:** [April 10, 2024, 1:06pm UTC](https://klipper.discourse.group/t/mainsail-doesnt-connect-to-moonraker-after-klipper-update/15641/6 "2024-04-10T13:06:05Z")

</div>

[manual\_stepper.zip](https://klipper.discourse.group/uploads/short-url/7aPjLAcPIIgD8Za1MlARo32fWbv.zip) (1.8 KB)

Okay, dealers choice, the previous one reverts back to before the change.

This one actually corrects the issue.

@koconnor - Sorry for the double tag, but I can confirm the newest update to manual\_stepper (the status function) causes Mainsail to hang when the webhooks try to get the stepper status cause there is an error.

I’ve messed with my branch of Klipper so don’t want to put in a PR and have to mess with another branch and making sure I take out unintentional changes.

I changed the following lines…

```auto
34 self.stepper_enable = self.printer.lookup_object('stepper_enable')

```

45-55

```auto
    def do_enable(self, enable):
        self.sync_print_time()
        if enable:
            for s in self.steppers:
                se = self.stepper_enable.lookup_enable(s.get_name())
                se.motor_enable(self.next_cmd_time)
        else:
            for s in self.steppers:
                se = self.stepper_enable.lookup_enable(s.get_name())
                se.motor_disable(self.next_cmd_time)
        self.sync_print_time()

```

108-110

```auto
    def get_status(self, eventtime):
        return {'position': self.rail.get_commanded_position(),
                'enabled': self.stepper_enable.lookup_enable(self.steppers[0].get_name()).is_motor_enabled()}

```

---

<div class="post-metadata">

**Author:** ![ron\_swan](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/ron_swan/32/11217_2.png) [@ron\_swan](https://klipper.discourse.group/u/ron_swan)\
**Post date:** [April 10, 2024, 1:56pm UTC](https://klipper.discourse.group/t/mainsail-doesnt-connect-to-moonraker-after-klipper-update/15641/7 "2024-04-10T13:56:17Z")

</div>

This one worked! Thanks Giggler!

---

<div class="post-metadata">

**Author:** ![koconnor](https://avatars.discourse-cdn.com/v4/letter/k/aca169/32.png) [@koconnor](https://klipper.discourse.group/u/koconnor)\
**Post date:** [April 10, 2024, 2:46pm UTC](https://klipper.discourse.group/t/mainsail-doesnt-connect-to-moonraker-after-klipper-update/15641/8 "2024-04-10T14:46:04Z")

</div>

Unfortunately, there was a defect in PR #6527. I reverted that PR in commit 4cfa266e. Sorry for the delay.

-Kevin

---

<div class="post-metadata">

**Author:** ![ron\_swan](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/ron_swan/32/11217_2.png) [@ron\_swan](https://klipper.discourse.group/u/ron_swan)\
**Post date:** [April 10, 2024, 9:44pm UTC](https://klipper.discourse.group/t/mainsail-doesnt-connect-to-moonraker-after-klipper-update/15641/9 "2024-04-10T21:44:52Z")

</div>

Updated to 4cfa266e and can confirm the bug is no longer present for me.

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/klipper/original/1X/64419bf2aac6639e6ef5cef200dcd456b0a01ac3.png) [@system](https://klipper.discourse.group/u/system)\
**Post date:** [May 11, 2024, 7:45am UTC](https://klipper.discourse.group/t/mainsail-doesnt-connect-to-moonraker-after-klipper-update/15641/10 "2024-05-11T07:45:04Z")

</div>

Closed on May 11, 2024, 7:45am UTC

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
