shadowsocks/shadowsocks-windows · warning · ArgumentException
Password can not be blank
Error message
Password can not be blank
What it means
ArgumentException thrown by CheckPassword when the password is null or empty. Shadowsocks derives the session key from the password, so a blank password yields a zero/weak key and is rejected during server validation.
Source
Thrown at shadowsocks-csharp/Model/Configuration.cs:368
}
public static void CheckPort(int port)
{
if (port <= 0 || port > 65535)
throw new ArgumentException(I18N.GetString("Port out of range"));
}
public static void CheckLocalPort(int port)
{
CheckPort(port);
if (port == 8123)
throw new ArgumentException(I18N.GetString("Port can't be 8123"));
}
private static void CheckPassword(string password)
{
if (string.IsNullOrEmpty(password))
throw new ArgumentException(I18N.GetString("Password can not be blank"));
}
public static void CheckServer(string server)
{
if (string.IsNullOrEmpty(server))
throw new ArgumentException(I18N.GetString("Server IP can not be blank"));
}
public static void CheckTimeout(int timeout, int maxTimeout)
{
if (timeout <= 0 || timeout > maxTimeout)
throw new ArgumentException(
I18N.GetString("Timeout is invalid, it should not exceed {0}", maxTimeout));
}
}
}
View on GitHub (pinned to 891d971682)
Solutions
- Enter a non-empty password for the server.
- Re-scan the SS QR code or re-paste the full ss:// URL including the password.
- Edit gui-config.json to set a non-empty password and reload.
Example fix
// before
Configuration.CheckPassword("");
// after
Configuration.CheckPassword("your-strong-password"); Defensive patterns
Strategy: validation
Validate before calling
if (string.IsNullOrEmpty(password)) {
// block Save / report error before calling CheckPassword
return;
} Try / catch
try { Configuration.CheckPassword(pw); }
catch (ArgumentException ex) { /* prompt the user for a password */ } Prevention
- Require a non-empty password before enabling the Save button.
- Validate imported SS URLs and reject those missing the password segment.
When it happens
Trigger: A server config saved with an empty password field. The password was cleared in the GUI. An imported SS URL or QR code is missing the password segment.
Common situations: An ss:// URL missing the password. A new server entry saved before the password was typed. Config edited externally and the password deleted.
Related errors
- Unknown forward proxy.
- Port out of range
- Port can't be 8123
- Server IP can not be blank
- Timeout is invalid, it should not exceed {0}
AI-assisted analysis of shadowsocks/shadowsocks-windows@891d971682 (2026-08-13).
Data as JSON: /api/errors/b0695fbf396593dc.
Report an issue: GitHub.