You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm on the latest release and the issue still happens.
I searched existing issues and didn't find a duplicate.
What happened?
It all installs just fine, but then I cannot click on anything and I cannot drop files in.
Hovers do respond. I can type text in inputs and select text. But button do not react. Logs show nothing unusual.
Thanks for the report. Hovers working but clicks doing nothing points at the WebView2 layer rather than at StemDeck itself, so a couple of things would help narrow it down.
With StemDeck running, open http://localhost:8000 in Edge or Chrome. Same UI, same backend, just outside the app window. If the buttons work there, the app is fine and the problem is WebView2. If they are dead there too, it is in the page.
Two other things worth knowing:
Your WebView2 runtime version. Settings, Apps, search for "Microsoft Edge WebView2 Runtime".
Whether an earlier StemDeck version worked on this machine, or if this is the first one you tried.
It's my first install (WebView2 runtime version: 152.0.4191.66) and there are a few js errors:
Failed to load module script: Expected a JavaScript-or-Wasm module script but the server responded with a MIME type of "text/plain". Strict MIME type checking is enforced for module scripts per HTML spec.
ui-chrome.js:1 Failed to load module script: Expected a JavaScript-or-Wasm module script but the server responded with a MIME type of "text/plain". Strict MIME type checking is enforced for module scripts per HTML spec.
:8000/favicon.ico:1 Failed to load resource: the server responded with a status of 404 (Not Found)
It's probably a common registry .js misconfiguration (set as text/plain). That makes Starlette/FastAPI serve the files with Content-Type: text/plain, which makes browsers block the ES modules.
Windows fix: explicitly register the MIME type near the top of backend/app/main.py.
Thanks for the detail here. "Hovers respond, I can type, but buttons do nothing" is what made this findable, so that was a useful report.
That combination points at the interface failing partway through starting up. Hovering and text selection are things the browser does on its own. Buttons and file drop need code that attaches to them, and that code never ran.
StemDeck could not tell you any of that, which is its own problem. The error reporting registers at the end of the same startup run that failed, so when it fails there is nothing to write. That is why your logs look clean. I have opened #618 for it and fixed it, so a future build will show the reason on screen instead of leaving you with a window that ignores you.
For your install there are two possibilities, and one file tells them apart:
A JavaScript file did not load, usually antivirus quarantine or an incomplete unzip.
Everything loaded and one part threw.
Could you grab the backend log? With StemDeck open, visit http://127.0.0.1:8080/api/logs/backend (8080 is the default, Settings shows your port). /api/logs.zip gets everything in one file if that is easier.
What I am looking for is lines mentioning /js/ with a 404. If one is there, it names the missing file and a clean re-extract fixes it. If they are all 200, it is mine to chase and I will take it from there.
That is it exactly, and thank you for digging into it. Your console output named the cause outright.
You are right about where it comes from. mimetypes reads HKEY_CLASSES_ROOT on Windows, so a .js entry pointing at text/plain makes Starlette serve every module as plain text, and the browser refuses to execute them. Nothing attaches, and what is left is a window that renders and ignores you. That also explains why the logs were clean. Every request returned 200.
Fixed in #620, along the lines you suggested. The types the app serves are now pinned at startup, so the registry no longer gets a vote.
You had already posted the answer two days earlier, and my last comment asked for logs anyway. Noted for next time.
Separately, #619 addresses why this reached you as a silent failure at all. The error reporting was registering at the end of the same startup run that was failing, so there was nothing to write. With that in, this would have told you what broke instead of leaving you guessing.
Both are on main shortly and will be in the next release. If you would rather not wait, setting .js back to text/javascript in the registry fixes your install today.
Activity
thcp commentedon Sep 10, 2026
Thanks for the report. Hovers working but clicks doing nothing points at the WebView2 layer rather than at StemDeck itself, so a couple of things would help narrow it down.
With StemDeck running, open
http://localhost:8000in Edge or Chrome. Same UI, same backend, just outside the app window. If the buttons work there, the app is fine and the problem is WebView2. If they are dead there too, it is in the page.Two other things worth knowing:
If it is easier to work through it live, I am on Discord: https://discord.gg/YhCKsjhcwB
DrSiemer commentedon Sep 10, 2026
It's my first install (WebView2 runtime version: 152.0.4191.66) and there are a few js errors:
It's probably a common registry .js misconfiguration (set as text/plain). That makes Starlette/FastAPI serve the files with Content-Type: text/plain, which makes browsers block the ES modules.
Windows fix: explicitly register the MIME type near the top of backend/app/main.py.
thcp commentedon Sep 12, 2026
Thanks for the detail here. "Hovers respond, I can type, but buttons do nothing" is what made this findable, so that was a useful report.
That combination points at the interface failing partway through starting up. Hovering and text selection are things the browser does on its own. Buttons and file drop need code that attaches to them, and that code never ran.
StemDeck could not tell you any of that, which is its own problem. The error reporting registers at the end of the same startup run that failed, so when it fails there is nothing to write. That is why your logs look clean. I have opened #618 for it and fixed it, so a future build will show the reason on screen instead of leaving you with a window that ignores you.
For your install there are two possibilities, and one file tells them apart:
Could you grab the backend log? With StemDeck open, visit
http://127.0.0.1:8080/api/logs/backend(8080 is the default, Settings shows your port)./api/logs.zipgets everything in one file if that is easier.What I am looking for is lines mentioning
/js/with a 404. If one is there, it names the missing file and a clean re-extract fixes it. If they are all 200, it is mine to chase and I will take it from there.Let me know what you find.
thcp commentedon Sep 12, 2026
That is it exactly, and thank you for digging into it. Your console output named the cause outright.
You are right about where it comes from.
mimetypesreads HKEY_CLASSES_ROOT on Windows, so a.jsentry pointing attext/plainmakes Starlette serve every module as plain text, and the browser refuses to execute them. Nothing attaches, and what is left is a window that renders and ignores you. That also explains why the logs were clean. Every request returned 200.Fixed in #620, along the lines you suggested. The types the app serves are now pinned at startup, so the registry no longer gets a vote.
You had already posted the answer two days earlier, and my last comment asked for logs anyway. Noted for next time.
Separately, #619 addresses why this reached you as a silent failure at all. The error reporting was registering at the end of the same startup run that was failing, so there was nothing to write. With that in, this would have told you what broke instead of leaving you guessing.
Both are on main shortly and will be in the next release. If you would rather not wait, setting
.jsback totext/javascriptin the registry fixes your install today.Thanks again. This was a good catch.
Say why the app did not start, instead of showing a dead one (#619)
Serve the frontend with correct MIME types, whatever the host registr…