Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Request] Better detect failed page renders and automatically disable UI modifications from plugins causing them #625

Open
3 tasks done
BryanJacobs opened this issue May 13, 2024 · 3 comments
Assignees
Labels
feature request a request for a feature, no guarantee of addition

Comments

@BryanJacobs
Copy link

Please confirm

  • I have searched existing issues
  • This issue is not a duplicate of an existing one
  • This is not a request for a plugin

Feature Request Description

Decky should be able to detect when a plugin causes a Steam frontend render failure, and help the user to restore decky-loader itself (not the plugin...) to a working state.

Further Description

See #621 , where a large number of plugins were simultaneously broken by a Steam frontend update.

Decky-loader has some code to notice when a plugin errors out, but doesn't appear to notice when the plugin breaks the Steam UI entirely. This can - and did - create a situation where users couldn't uninstall plugins via the GUI, because the decky-loader GUI was inaccessible due to modifications made by the plugins themselves.

I think a situation where all pages are throwing render errors should cause decky-loader to disable plugins until that stops being the case. Call it a "safe mode", if you will. This would ideally also be able to isolate the broken plugin(s) and inform the user.

@BryanJacobs BryanJacobs added the feature request a request for a feature, no guarantee of addition label May 13, 2024
@dev0T
Copy link

dev0T commented May 13, 2024

My suggestion would be a little different than yours but to add to it: Errors from plugins should be contained within them, with something like an error boundary. I haven't checked how the insertion is being done by Decky but this is something that if my knowledge doesn't fail me could be done wrapping each component when loading them and if they crash, it would be contained.

@AAGaming00
Copy link
Member

Better error boundaries are planned for the websocket update

@AAGaming00 AAGaming00 self-assigned this May 14, 2024
@AAGaming00 AAGaming00 added this to the Websockets support milestone May 14, 2024
@dev0T
Copy link

dev0T commented May 14, 2024

Better error boundaries are planned for the websocket update

Awesome, thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request a request for a feature, no guarantee of addition
Projects
Status: 🏗 In progress
Development

No branches or pull requests

3 participants