Fixing AL Language Extension Debugger on Linux with Wayland/Hyprland
The AL Language Extension debugger fails on Linux with Wayland/Hyprland, showing empty Call Stack and Variables panels despite successfully connecting to Business Central. Using VS Code Dev Containers to run the AL Language Server inside an Ubuntu container while keeping the VS Code UI on Hyprland restores full debugging functionality.
Read it hereOpen in Claudehttps-stefanmaron-com-posts-fixing-al-debugger-linux-wayland--13617af244.md
post Stefan Maron
"The AL Language Server uses socket-based IPC for communication between VS Code and the debugger."
Key points
- On Hyprland (Wayland), the AL debugger connects and stops at breakpoints, but the Call Stack and Variables panels stay empty because state updates never arrive
- Downgrading the AL extension and VS Code, adding .NET 8, forcing XWayland and trying other installs all failed
- Fix: run the AL extension in an Ubuntu Dev Container while the VS Code UI stays on the host, so the two talk over the Remote protocol and no display server is involved
- Setup needs a devcontainer.json with .NET 8.0 and the AL extension, the Remote Development extension, and al.useInteractiveLogin set to false
- An alternative is to use an X11 session such as i3 for AL work. The issue was reported to Microsoft as AL GitHub issue 8150
Quotes
- “The AL Language Server uses socket-based IPC for communication between VS Code and the debugger.” (Explains the root cause of why Call Stack and Variables panels stay empty on Wayland - the socket communication breaks due to Wayland’s stricter event handling)
Context
- Features: AL Language Extension, VS Code Dev Containers, Debug Adapter Protocol, Interactive login, Remote Development
- Versions: AL extension v16-v17, VS Code 1.104.1-1.105.1, .NET 8.0.20
Source: Stefan Maron, community blog. Summary, key points and quotes are derived (CONTENT-NOTICE.md); read the original for the full text.