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();
}
@OverrideView on GitHub (pinned to 9d1970a436)
Solutions
- Enter the upstream proxy address/host in the 'Address' field of the proxy chain section
- Untick 'Use proxy chain' if no upstream proxy is needed
- 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
- Never enable 'Use proxy chain' without filling the address field
- Trim text field values before validation
- In scripts, set both checkbox and text field together
- Prefer credential/config profiles that keep proxy data consistent
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
- conn.options.proxy.username.empty
- generic.options.panel.security.protocols.error.no.protocols.
- options.proxy.dialog.proxy.warning.fail.message
- generic.options.panel.security.protocols.error.just.sslv2hel
- authentication.method.pb.dialog.error.url.text
AI-assisted analysis of zaproxy/zaproxy@9d1970a436 (2026-09-05).
Data as JSON: /api/errors/bb26099e9661adc0.
Report an issue: GitHub.