Stream Deck Plugin keeps hanging multiple times a day

I'm sorry to report this as a general bug, but the streamdeck plugin is becoming unresponsive multiple times a day.

If I re-start the Streamdeck application, then the BTT buttons re-engage.

The issue affects all the buttons, but it is particularly noticeable where it affects the Clock widget. The image on the button freezes instead of failing. This means that the clock is unreliable for its main purpose.

It is a Mac M1 Silicon Ventura. It is the 1.0.0 plugin. It was happening before the recent Streamdeck software updates, and it is happening often now. I reinstalled the plugin, still finding the same behaviour. I am not using "Full Control" because I need other widgets that are not likely to be replicable in the full control environment.

A possible small improvement would be to have the buttons show they are not connected to a live instance of BTT when the connection drops. (This is not ideal, but it would let me know when I had to re-start to get the clock and buttons working).

A more structural fix is probably making the plugin re-set itself more, or whatever would make it not fail?

The other plugins on the deck are not failing in the same way, or at the same time as when the BTT plugin drops out. Or they are resetting themselves in a way that the BTT plugin isn't.

unfortunately it’s an issue with the Stream Deck software (in plugin mode, full control mode doesn’t have these issues), as the BTT use case is quite special it works differently than other plugins, and the Stream Deck software is missing one important api function that would resolve this. I’ll try to contact their devs, it would be very easy for them to add such an API call.

I think the issue happens mostly if BTT is quit and started again, or if it relaunches.

Thanks for the quick reply.

I was tracking it to see if it was based on any "waking from sleep". Unfortunately, I am seeing hanging states more than once a day, during active sessions where nothing is going to sleep. I don't know, maybe BTT is restarting itself in the background.

On a side note, I think having a stable plug-in would be great for your visibility to the people who have Steamdecks, but have never heard of BTT. Right now it is great for people already in your orbit. There will always be some people who can't do full control. I hope you have good luck with the other developers. (I'm sure you know all this, I thought I'd share the thought)

yes, once the plug-in mode is stable, I’ll release it to the stream deck store

I'm running into this as well. I ALSO thought it was related to sleep, but it's definitely not doesn't appear to be. I have a Stream Deck XL, so I currently just have a button set to kill the BTT plugin... it works sometimes :stuck_out_tongue_winking_eye:

I really really like the integration, though, and hope it can get to be more stable -- and I'm definitely available to send logs / do tests / etc

I have posted in the official Stream Deck subreddit: (11) Ability to reconnect : StreamDeckSDK (reddit.com)

If possible, maybe upvote that post.

I'm not on Reddit, so I can't upvote that post, but Elgato DOES have a fairly active Discord here. It's... not always super helpful, at least for macOS, but it's something.

Good idea! I'll try that.

Any luck with this? Before SD 6.0 came out, I had a little script that would kill the BTTStreamDeck process, and then that automatically restarted, but it seems like that isn't working anymore. (I put a button on the Stream Deck to run the script, so every once in a while I could just mash that and my BTT buttons would work again :joy:)

Today I deleted my BTT Date/Time button from the deck completely. I had been using it on secondary pages, but even then, I kept being surprised when the time was ten minutes later in reality. It started to affect my real-life preparedness for meetings.

Right now, the BTT plug-in hangs in a way that even other second-party non-Elgato plug-ins do not. Maybe they are re-initializing over time in a different way, but whatever is different, they work.

Unfortunately other plugins work very different from the one in BTT.

It seems like Elgato has made some changes in the 6.x versions of their software that break the workarounds I have been using so far, but I'll soon look into this.

3 Likes

FWIW, I've updated my script for restarting things; now it restarts the Stream Deck software instead. For anyone interested:

#!/bin/zsh

# AppleScript seems to be the most reliable way to kill the software
osascript -e 'quit application "Elgato Stream Deck"'

# But it's not always super FAST, so `sleep` for a couple of seconds
# to make sure it's actually closed
sleep 2

# `open` opens a _whatever_ in macOS; `-a` lets you just pass an application
# name without worrying about the path. `--args` passes any following arguments 
# into the opening application. `--runinbk` was found in the Stream Deck 
# LaunchAgent, and opens the Stream Deck software in the background 
# without opening up its configuration window. 
open -a "Elgato Stream Deck" --args --runinbk

I'm not sure why I can't just use launchctl load/unload on the LaunchAgent, but... I haven't been able to make it work, so this suffices.

To use it, store that as a script somewhere and put a System -> Open button on your Stream Deck. BTT buttons not working? Mash that button, SD restarts, things work again. It's not elegant, but... It's functional.

2 Likes

This is also what I'll add as a workaround if I can't find a better solution (restarting the Stream Deck software as soon as BTT detects the connection was lost)

I hadn't found the runinbk yet, that is very helpful!

1 Like

I have added auto-detection of the broken plugin connection and @isaac_n 's solution to restart the elgato software to 3.967 alpha. It can take about 3 seconds after BTT has detected a broken connection for the Elgato software to restart.

Would be great if you could try this alpha version.

I've got the alpha running and will keep you in the loop.

Running 3.967 (2132) and the auto-detection doesn't seem to be working. Any logs I can check or ports I can keep an eye on or anything to help?

can you check whether the BTTStreamDeck plugin is still running when it hangs? (BTT first tries to kill that)

Will do!

I have a hang, and the BTTStreamDeck is still running in Activity Monitor.

I have added some more checks and debug logs to 3.968 alpha. Would be great if you could test that and if you still run into the issue go to Help => Export Diagnostic Debug Info and send the result to andreas@folivora.ai