Skip to content

bug: windows-rdp auto-fill no longer submits the form on Devolutions Gateway 2026.2.x #1044

Description

@matifali

Current Behavior

The windows-rdp module defaults to devolutions_gateway_version = "latest", which currently installs Devolutions Gateway 2026.2.4. The module's devolutions-patch.js selectors no longer match that UI, so the sign-in form is filled but never submitted, and no session starts.

Observed on a live AWS Windows workspace, browser console:

[Devolutions Patch] Form detected. Starting auto-fill...
[Devolutions Patch] Protocol dropdown trigger not found.
[Devolutions Patch] Hostname set to localhost
[Devolutions Patch] Set username to Administrator
[Devolutions Patch] Set password to <redacted>
[Devolutions Patch] Submit button not found or disabled.
ERROR TypeError: C.protocol.toLowerCase is not a function
    at A.socketOnMessage (.../chunk-AKNLUDAU.js)

The form stays on screen with the fields populated, the session-toolbar never appears, so attachCloseListener, Unicode Keyboard Mode and Dynamic Resize never get applied either.

Two selectors have drifted:

  • p-dropdown[id="protocol"] no longer matches the protocol control
  • p-button[class="p-element"] button no longer matches the connect button

Expected Behavior

Opening the Web RDP app connects straight into the Windows desktop, with no visible form and no manual click.

Steps to Reproduce

  1. Add the windows-rdp module to a Windows workspace, leaving devolutions_gateway_version at its latest default.
  2. Start the workspace and open the Web RDP app.
  3. The Devolutions form appears pre-filled, but no session connects.

Desired Solution

Update the selectors in devolutions-patch.js for the current Gateway UI, and make the failure loud rather than silent: if the submit button cannot be found after N polls, surface a visible message instead of only logging to the console. A user today just sees a form that does nothing.

Worth discussing separately: latest means an upstream UI change can break every workspace using this module with no change on our side. Pinning a known-good default and bumping it deliberately would trade freshness for predictability, which seems like the right trade for an air-gapped or otherwise change-averse deployment.

Note

Found while dogfooding #1034. Independent of the credential escaping fixed there.

Related to #20

🤖 This response was generated by Coder Agents.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions