zaproxy/zaproxy · warning · Exception

conn.options.proxy.address.empty

Error message

conn.options.proxy.address.empty

What it means

OptionsConnectionPanel.validateParam() validates the Connection options dialog before saving. If 'Use proxy chain' is enabled, the proxy chain address/host field must be non-empty; otherwise it throws a generic Exception whose message is a localized i18n key (conn.options.proxy.address.empty). The field is also given focus so the user can correct it.

Source

Thrown at zap/src/main/java/org/parosproxy/paros/extension/option/OptionsConnectionPanel.java:654

        if (chkProxyChainPrompt.isSelected()) {
            setProxyChainPromptEnabled(true);
        }
    }

    private void setProxyChainPromptEnabled(boolean isEnabled) {

        txtProxyChainPassword.setEnabled(!isEnabled);
        chkShowPassword.setEnabled(!isEnabled);
    }

    @Override
    public void validateParam(Object obj) throws Exception {

        if (chkUseProxyChain.isSelected()) {
            // ZAP: empty proxy name validation
            if (txtProxyChainName.getText().isEmpty()) {
                txtProxyChainName.requestFocus();
                throw new Exception(
                        Constant.messages.getString("conn.options.proxy.address.empty"));
            }

            if (chkProxyChainAuth.isSelected()
                    && !chkProxyChainPrompt.isSelected()
                    && txtProxyChainUserName.getText().isEmpty()) {
                txtProxyChainUserName.requestFocus();
                throw new Exception(
                        Constant.messages.getString("conn.options.proxy.username.empty"));
            }
        }

        securityProtocolsPanel.validateSecurityProtocols();

        socksProxyPanel.validateParam();
    }

    @Override

View on GitHub (pinned to 9d1970a436)

Solutions

  1. Enter the upstream proxy address/host in the 'Address' field of the proxy chain section
  2. Untick 'Use proxy chain' if no upstream proxy is needed
  3. If configuring programmatically, set the proxy chain address before triggering validation/save

Example fix

// before
chkUseProxyChain.setSelected(true); // then save -> 'conn.options.proxy.address.empty'
// after
chkUseProxyChain.setSelected(true);
txtProxyChainName.setText("corp-proxy.example.com");
txtProxyChainPort.setText("8080");
Defensive patterns

Strategy: validation

Validate before calling

if (useProxyChain && (proxyAddress == null || proxyAddress.trim().isEmpty())) {
    // do not open/save the dialog; prompt for the address first
}

Try / catch

try {
    optionsPanel.validateParam(connectionOptions);
} catch (Exception e) {
    if ("conn.options.proxy.address.empty".equals(e.getMessage())) {
        focusProxyAddressField();
    }
}

Prevention

When it happens

Trigger: Clicking OK on Options > Connection with 'Use proxy chain' checked but the proxy address/host text field left blank.

Common situations: Users enabling the upstream-proxy checkbox to configure it later; a saved profile where the address was cleared; automation or scripting that selects the checkbox programmatically without setting the text field.

Understand the failure class

Background: "must not be empty", "cannot be empty" — required-field validation errors across open-source libraries — this error's family across 41 libraries.

Related errors


AI-assisted analysis of zaproxy/zaproxy@9d1970a436 (2026-09-05). Data as JSON: /api/errors/bb26099e9661adc0. Report an issue: GitHub.