Skip to content

GitLab Duo Chat fails to initialize in VS Code Remote SSH environments

Checklist

  • I'm using the latest version of the extension
    • Extension version: 6.10.0
  • I'm using the latest VS Code version
    • VS Code version: 1.99.3
  • I'm using a supported version of GitLab
    • GitLab version: happens on gitlab.com

Summary

GitLab Duo Chat fails to initialize when using VS Code with Remote Development SSH extension, showing a timeout error: "The webview didn't initialize in 10000ms". This only affects the main Duo Chat panel - Quick Chat functionality works correctly in the same environment.

Steps to reproduce

  1. Install VS Code with Remote Development SSH extension
  2. Connect to a remote server (e.g., EC2 instance in ap-northeast-1)
  3. Open a project in the remote environment
  4. Try to open GitLab Duo Chat panel from the sidebar
  5. Observe the error: "The webview didn't initialize in 10000ms"

What is the current bug behavior?

When attempting to open GitLab Duo Chat in a VS Code Remote SSH session, the webview fails to initialize within the hardcoded 10-second timeout, resulting in an error message. The chat panel shows an error screen instead of loading properly.

What is the expected correct behavior?

GitLab Duo Chat should initialize successfully in Remote SSH environments, possibly with an extended timeout to accommodate the additional latency introduced by the distant SSH connection.

Relevant logs and/or screenshots

Error from the extension log:

2025-04-17T10:57:19:416 [error]: {
      "userMessage": "The webview didn't initialize in 10000ms",
      "errorMessage": "The webview didn't initialize in 10000ms",
      "stack": [
        "Error: The webview didn't initialize in 10000ms",
        "    at Timeout.<anonymous> (/home/ec2-user/.vscode-server/extensions/src/common/webview/duo_chat/duo_chat_controller.ts:73:18)",
        "    at listOnTimeout (node:internal/timers:581:17)",
        "    at processTimers (node:internal/timers:519:7)"
      ]
    }

Possible fixes

The issue is in duo_chat_controller.ts where the timeout is hardcoded to 10 seconds: https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/src/common/webview/duo_chat/duo_chat_controller.ts#L9

const WAIT_TIMEOUT_MS = 10000;

This constant is tested against where the error is raised:

https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/src/common/webview/duo_chat/duo_chat_controller.ts#L71-73

    } else if (Date.now() - startTime >= WAIT_TIMEOUT_MS) {
      clearInterval(interval);
      reject(new Error(`The webview didn't initialize in ${WAIT_TIMEOUT_MS}ms`));

Possible fixes:

  1. Make the timeout configurable via VS Code settings
  2. Automatically extend the timeout when running in Remote SSH environments
  3. Implement a progressive timeout that increases with retry attempts

The current user setting gitlab.webviewTimeoutSeconds mentioned in fix: add custom timeout for the Duo Chat webview (!2497 - merged) doesn't affect this particular timeout because it's hardcoded in the controller.

Workaround

See our troubleshooting documentation for a workaround.

Edited by Cleveland Bledsoe Jr