I installed the latest testing version today through a Decky notification. Soon after, still in the Steam UI, the fan went full speed and the UI was barely responsive. I checked processes and Network Sentinel memory use was 10GB and increasing. kswapd was 100% CPU. Uninstalling fixed the issue. I don't have a lot to go on to debug this, apologies, but I wanted you to be aware.
[2026-01-09 11:27:32,251][INFO]: Migrating Network Sentinel plugin
[2026-01-09 11:27:32,252][INFO]: Calling Loader unload function for Network Sentinel.
[2026-01-09 11:27:32,252][INFO]: Attempting to unload with plugin Network Sentinel's "_unload" function.
[2026-01-09 11:27:32,252][INFO]: Network Sentinel plugin unloading
[2026-01-09 11:27:32,252][ERROR]: Failed to save settings: module 'decky_loader.plugin.imports.decky' has no attribute 'DECKY_SETTINGS_DIR'
[2026-01-09 11:27:32,253][INFO]: Unloaded Network Sentinel
[2026-01-09 11:27:32,253][ERROR]: Task was destroyed but it is pending!
task: <Task pending name='Task-210' coro=<Plugin._main() running at /home/deck/homebrew/plugins/network-sentinel/main.py:524>>
[2026-01-09 11:27:32,256][ERROR]: Task was destroyed but it is pending!
task: <Task pending name='Task-211' coro=<UnixSocket.setup_server() running at decky_loader/localplatform/localsocket.py:25>>
[2026-01-09 11:27:32,515][INFO]: Migrating Network Sentinel plugin
[2026-01-09 11:27:32,516][INFO]: Calling Loader unload function for Network Sentinel.
[2026-01-09 11:27:32,516][INFO]: Attempting to unload with plugin Network Sentinel's "_unload" function.
[2026-01-09 11:27:32,516][INFO]: Network Sentinel plugin unloading
[2026-01-09 11:27:32,516][ERROR]: Failed to save settings: module 'decky_loader.plugin.imports.decky' has no attribute 'DECKY_SETTINGS_DIR'
[2026-01-09 11:27:32,516][INFO]: Unloaded Network Sentinel
[2026-01-09 11:27:32,517][ERROR]: Task was destroyed but it is pending!
task: <Task pending name='Task-215' coro=<Plugin._main() running at /home/deck/homebrew/plugins/network-sentinel/main.py:524>>
[2026-01-09 11:27:32,519][ERROR]: Task exception was never retrieved
future: <Task finished name='Task-214' coro=<SandboxedPlugin.shutdown() done, defined at decky_loader/plugin/sandboxed_plugin.py:168> exception=SystemExit(0)>
Traceback (most recent call last):
File "decky_loader/plugin/sandboxed_plugin.py", line 130, in initialize
File "asyncio/base_events.py", line 607, in run_forever
thread = threading.Thread(target=self._do_shutdown, args=(future,))
^^^^^^^^^^^^^^^^
File "asyncio/base_events.py", line 1922, in _run_once
# Let's try default handler.
^^^^^^^^^^^^^
File "asyncio/events.py", line 80, in _run
File "decky_loader/plugin/sandboxed_plugin.py", line 182, in shutdown
SystemExit: 0
[2026-01-09 11:27:32,521][ERROR]: Task was destroyed but it is pending!
task: <Task pending name='Task-216' coro=<UnixSocket.setup_server() running at decky_loader/localplatform/localsocket.py:25>>
[2026-01-09 11:27:32,683][INFO]: Migrating Network Sentinel plugin
[2026-01-09 11:27:32,684][INFO]: Calling Loader unload function for Network Sentinel.
[2026-01-09 11:27:32,684][INFO]: Attempting to unload with plugin Network Sentinel's "_unload" function.
[2026-01-09 11:27:32,684][INFO]: Network Sentinel plugin unloading
[2026-01-09 11:27:32,684][ERROR]: Failed to save settings: module 'decky_loader.plugin.imports.decky' has no attribute 'DECKY_SETTINGS_DIR'
[2026-01-09 11:27:32,684][INFO]: Unloaded Network Sentinel
[2026-01-09 11:27:32,684][ERROR]: Task was destroyed but it is pending!
task: <Task pending name='Task-218' coro=<Plugin._main() running at /home/deck/homebrew/plugins/network-sentinel/main.py:524>>
[2026-01-09 11:27:32,687][ERROR]: Task exception was never retrieved
future: <Task finished name='Task-217' coro=<SandboxedPlugin.shutdown() done, defined at decky_loader/plugin/sandboxed_plugin.py:168> exception=SystemExit(0)>
Traceback (most recent call last):
File "decky_loader/plugin/sandboxed_plugin.py", line 130, in initialize
File "asyncio/base_events.py", line 607, in run_forever
thread = threading.Thread(target=self._do_shutdown, args=(future,))
^^^^^^^^^^^^^^^^
File "asyncio/base_events.py", line 1922, in _run_once
# Let's try default handler.
^^^^^^^^^^^^^
File "asyncio/events.py", line 80, in _run
File "decky_loader/plugin/sandboxed_plugin.py", line 182, in shutdown
SystemExit: 0
[2026-01-09 11:27:32,690][ERROR]: Task was destroyed but it is pending!
task: <Task pending name='Task-219' coro=<UnixSocket.setup_server() running at decky_loader/localplatform/localsocket.py:25>>
[2026-01-09 11:27:32,849][INFO]: Migrating Network Sentinel plugin
[2026-01-09 11:27:32,850][INFO]: Calling Loader unload function for Network Sentinel.
[2026-01-09 11:27:32,850][INFO]: Attempting to unload with plugin Network Sentinel's "_unload" function.
[2026-01-09 11:27:32,850][INFO]: Network Sentinel plugin unloading
[2026-01-09 11:27:32,851][ERROR]: Failed to save settings: module 'decky_loader.plugin.imports.decky' has no attribute 'DECKY_SETTINGS_DIR'
[2026-01-09 11:27:32,851][INFO]: Unloaded Network Sentinel
[2026-01-09 11:27:32,851][ERROR]: Task was destroyed but it is pending!
task: <Task pending name='Task-221' coro=<Plugin._main() running at /home/deck/homebrew/plugins/network-sentinel/main.py:524>>
[2026-01-09 11:27:32,854][ERROR]: Task exception was never retrieved
future: <Task finished name='Task-220' coro=<SandboxedPlugin.shutdown() done, defined at decky_loader/plugin/sandboxed_plugin.py:168> exception=SystemExit(0)>
Traceback (most recent call last):
File "decky_loader/plugin/sandboxed_plugin.py", line 130, in initialize
File "asyncio/base_events.py", line 607, in run_forever
thread = threading.Thread(target=self._do_shutdown, args=(future,))
^^^^^^^^^^^^^^^^
File "asyncio/base_events.py", line 1922, in _run_once
# Let's try default handler.
^^^^^^^^^^^^^
File "asyncio/events.py", line 80, in _run
File "decky_loader/plugin/sandboxed_plugin.py", line 182, in shutdown
SystemExit: 0
[2026-01-09 11:27:32,856][ERROR]: Task was destroyed but it is pending!
task: <Task pending name='Task-222' coro=<UnixSocket.setup_server() running at decky_loader/localplatform/localsocket.py:25>>
[2026-01-09 11:27:33,000][INFO]: Migrating Network Sentinel plugin
[2026-01-09 11:27:33,001][INFO]: Calling Loader unload function for Network Sentinel.
[2026-01-09 11:27:33,001][INFO]: Attempting to unload with plugin Network Sentinel's "_unload" function.
[2026-01-09 11:27:33,001][INFO]: Network Sentinel plugin unloading
[2026-01-09 11:27:33,001][ERROR]: Failed to save settings: module 'decky_loader.plugin.imports.decky' has no attribute 'DECKY_SETTINGS_DIR'
[2026-01-09 11:27:33,001][INFO]: Unloaded Network Sentinelfile:///home/deck/NSLGameSaves
[2026-01-09 11:27:33,001][ERROR]: Task was destroyed but it is pending!
task: <Task pending name='Task-224' coro=<Plugin._main() running at /home/deck/homebrew/plugins/network-sentinel/main.py:524>>
[2026-01-09 11:27:33,004][ERROR]: Task exception was never retrieved
future: <Task finished name='Task-223' coro=<SandboxedPlugin.shutdown() done, defined at decky_loader/plugin/sandboxed_plugin.py:168> exception=SystemExit(0)>
Traceback (most recent call last):
File "decky_loader/plugin/sandboxed_plugin.py", line 130, in initialize
File "asyncio/base_events.py", line 607, in run_forever
thread = threading.Thread(target=self._do_shutdown, args=(future,))
^^^^^^^^^^^^^^^^
File "asyncio/base_events.py", line 1922, in _run_once
# Let's try default handler.
^^^^^^^^^^^^^
File "asyncio/events.py", line 80, in _run
File "decky_loader/plugin/sandboxed_plugin.py", line 182, in shutdown
SystemExit: 0
[2026-01-09 11:27:33,007][ERROR]: Task was destroyed but it is pending!
task: <Task pending name='Task-225' coro=<UnixSocket.setup_server() running at decky_loader/localplatform/localsocket.py:25>>
I installed the latest testing version today through a Decky notification. Soon after, still in the Steam UI, the fan went full speed and the UI was barely responsive. I checked processes and Network Sentinel memory use was 10GB and increasing. kswapd was 100% CPU. Uninstalling fixed the issue. I don't have a lot to go on to debug this, apologies, but I wanted you to be aware.
~/homebrew log has: