Skip to content

[Bug]: Corporate Proxy - CONNECTION_TEST_FAILED (fp: 880d14ba) #349

@gandrenacci

Description

@gandrenacci

Description

feat: Add global HTTP Proxy configuration in Advanced Settings


Description:

1. Is your feature request related to a problem? Please describe.

Yes. Users operating behind strict corporate networks, firewalls, or regional restrictions need to route their network traffic through a proxy to reach external LLM endpoints (Anthropic, OpenAI, etc.).

Currently, attempting to set proxy environment variables externally (for example, using $env:HTTP_PROXY or $env:HTTPS_PROXY in Windows PowerShell) before launching the application does not work reliably. Because of Electron's multi-process architecture, the environment variables do not automatically propagate or apply correctly to both the Chromium rendering context and the Node.js/AI SDK runtime lifecycle, depending on how the application is launched.

2. Describe the solution you'd like

I would like to have a dedicated, native HTTP Proxy input field inside the application's user interface, specifically under the Settings → Advanced tab.

This setting should:

  1. Allow users to input a custom proxy URL (e.g., http://127.0.0.1:7890).
  2. Persist the value securely in the application preferences (preferences.json).
  3. Dynamically apply the proxy rules at startup and on-the-fly when updated, ensuring both Electron's Chromium network layer and Node's background environment variables are configured.

3. Describe alternatives you've considered

  • Setting system-wide environment variables (impacts other applications unnecessarily and doesn't always guarantee Electron catches them on Windows).
  • Forcing the application to be launched exclusively via a configured terminal session (prone to user error and a poor user experience).

4. Additional context / Proposed Implementation Idea

I've looked into the codebase and we could implement this cleanly by:

  • Extending the Preferences schema in apps/desktop/src/main/preferences-ipc.ts to include a proxyUrl: string field.
  • Reading and applying this value in apps/desktop/src/main/index.ts during application boot using Electron's session.defaultSession.setProxy({ proxyRules }) along with mapping it to process.env.HTTP_PROXY / process.env.HTTPS_PROXY so that Node-level AI SDK requests obey the rule.
  • Adding a text input inside AdvancedTab.tsx linked to the IPC preferences store.

I would be happy to work on a Pull Request for this feature if the maintainers agree with this approach!

Steps to reproduce

Steps to reproduce
1 - Configure a strict corporate proxy environment on the host machine (e.g., via local proxy tools or corporate gateway).

2 - Launch the Open CoDesign application.

3 - Attempt to configure and test a connection to an AI provider endpoint (such as OpenAI or Anthropic).

4- Observe that the network request fails or times out because the application does not route its traffic through the proxy.

Expected behavior

The application should respect the proxy environment configurations (or offer a native UI setting) and successfully route outbound LLM API requests through the proxy to establish a successful connection.

Actual behavior

请求超时(>10s),检查 baseUrl 与网络可达性

open-codesign version

0.2.0

Platform

Windows

OS version

Windows 11 (10.0.26100)

Model provider (if relevant)

None

Error code

CONNECTION_TEST_FAILED

Diagnostics bundle

Bundle saved locally at ~\Downloads\open-codesign-diagnostics-2026-05-20T13-55-05.zip. Attach it to this issue after submitting.

Logs

updatedFiles: 0
}
[2026-05-20 09:32:51.183] [info]   [boot] open-codesign starting {
  version: '0.2.0',
  platform: 'win32',
  electron: '39.8.9',
  node: '22.22.1'
}
[2026-05-20 09:32:52.305] [info]   (main:boot) templates.ensure {
  action: 'skipped',
  source: '[path omitted]',
  dest: '[path omitted]',
  copiedFiles: 0,
  updatedFiles: 0
}
[2026-05-20 09:33:05.897] [warn]   (renderer:console) [i18n] missing translation key "settings.providers.custom.allowPrivateNetwork" in namespace "translation" for locale "en" {}
[2026-05-20 09:33:30.968] [warn]   (renderer:console) [i18n] missing translation key "settings.providers.custom.allowPrivateNetwork" in namespace "translation" for locale "en" {}
[2026-05-20 09:33:32.262] [warn]   (renderer:console) [i18n] missing translation key "settings.providers.custom.allowPrivateNetwork" in namespace "translation" for locale "en" {}
[2026-05-20 10:42:12.331] [info]   [boot] open-codesign starting {
  version: '0.2.0',
  platform: 'win32',
  electron: '39.8.9',
  node: '22.22.1'
}
[2026-05-20 15:52:06.655] [info]   [boot] open-codesign starting {
  version: '0.2.0',
  platform: 'win32',
  electron: '39.8.9',
  node: '22.22.1'
}
[2026-05-20 15:52:07.620] [info]   (main:boot) templates.ensure {
  action: 'skipped',
  source: '[path omitted]',
  dest: '[path omitted]',
  copiedFiles: 0,
  updatedFiles: 0
}
[2026-05-20 15:53:49.224] [info]   [boot] open-codesign starting {
  version: '0.2.0',
  platform: 'win32',
  electron: '39.8.9',
  node: '22.22.1'
}
[2026-05-20 15:53:49.401] [info]   (main:boot) templates.ensure {
  action: 'skipped',
  source: '[path omitted]',
  dest: '[path omitted]',
  copiedFiles: 0,
  updatedFiles: 0
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriageAwaiting maintainer review

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions