usebruno/bruno · warning · Error

No Linux proxy configuration found

Error message

No Linux proxy configuration found

What it means

LinuxProxyResolver iterates detection methods (gsettings, KDE/plasma, env-derived) and throws when every method returned null. It signals that no system proxy is currently configured on the Linux desktop, not a hard failure.

Source

Thrown at packages/bruno-requests/src/network/system-proxy/utils/linux.ts:43

        () => this.getGSettingsProxy(execOpts),
        () => this.getKDEProxy(execOpts),
        () => this.getEnvironmentFileProxy(),
        () => this.getSystemdProxy()
      ];

      for (const method of detectionMethods) {
        try {
          const proxy = await method();
          if (proxy) {
            return proxy;
          }
        } catch (error) {
          // Continue to next method if this one fails
          continue;
        }
      }

      throw new Error('No Linux proxy configuration found');
    } catch (error) {
      throw new Error(`Linux proxy detection failed: ${error instanceof Error ? error.message : String(error)}`);
    }
  }

  private async getGSettingsProxy(execOpts: ExecFileOptions): Promise<ProxyConfiguration | null> {
    try {
      const mode = await safeExec('gsettings', ['get', 'org.gnome.system.proxy', 'mode'], execOpts);

      // Handle PAC (auto) mode
      if (mode === '\'auto\'') {
        const autoConfigUrl = await safeExec('gsettings', ['get', 'org.gnome.system.proxy', 'autoconfig-url'], execOpts);
        const cleanUrl = (autoConfigUrl || '').replace(/'/g, '').trim();
        if (cleanUrl) {
          return {
            http_proxy: null,
            https_proxy: null,
            no_proxy: null,

View on GitHub (pinned to 9bdd81c7bd)

Solutions

  1. Treat as 'no proxy' rather than an error — set proxyMode to 'off' or rely on direct connection.
  2. Configure a proxy via gsettings set org.gnome.system.proxy mode 'manual' (and host/port) so detection returns a value.
  3. Export http_proxy/https_proxy environment variables as an alternative source.

Example fix

// before
const cfg = await resolver.getSystemProxy(); // throws 'No Linux proxy configuration found'

// after
try { const cfg = await resolver.getSystemProxy(); }
catch (e) { /* no system proxy configured -> connect directly */ const cfg = { http_proxy:null, https_proxy:null, no_proxy:null }; }
Defensive patterns

Strategy: fallback

Try / catch

try { return await resolver.detect(); }
catch (e) { if (/No Linux proxy configuration found/.test(e.message)) return { http_proxy:null, https_proxy:null, no_proxy:null }; throw e; }

Prevention

When it happens

Trigger: On Linux with proxyMode='system', none of gsettings / KIOSK / kwriteconfig5 / environment variables yield a proxy entry, so detectionMethods all resolve to null.

Common situations: A headless server or a desktop with proxy fully disabled; GNOME gsettings mode is 'none'; KDE rc files absent; running as a user without a D-Bus session so gsettings returns nothing.

Related errors


AI-assisted analysis of usebruno/bruno@9bdd81c7bd (2026-08-13). Data as JSON: /api/errors/db1823fa3db3e2b2. Report an issue: GitHub.