Testing and Debugging Plugins

Validate plugin behavior, catch hook errors early, and keep unload paths clean.

Test plugins in small steps.

That is the fastest way to find hook mistakes, permission issues, and cleanup bugs.

1

Verify manifest loading

Make sure the plugin appears and loads without immediate errors.

2

Verify one visible action

Show a toast or add one menu item first.

3

Verify core behavior

Test the score, audio, or project action your plugin is meant to perform.

4

Verify unload cleanup

Disable the plugin and confirm threads, streams, and UI state are cleaned up.

What to watch for

Hook name mismatches

If a function name in plugin.json does not exist in __init__.py, startup will fail.

Main-thread blocking

Long loops and heavy work can freeze the UI.

Move them into daemon threads.

Unreleased resources

Open files, background threads, and hardware handles should be released on unload.

Incomplete state cleanup

Even when the app restores theme or language automatically, your plugin still owns any custom workers or external connections.

Debugging strategy

  • start with one hook

  • add one capability at a time

  • keep functions small

  • test unload as often as startup

Failure model

If your plugin throws a critical exception, the app disables the plugin and stays stable.

Use that safety net, but do not rely on it instead of proper testing.

circle-exclamation

Last updated

Was this helpful?