apache/pulsar · error · AuthenticationException
INVALID_AUTH_DATA
INVALID_AUTH_DATA
Error message
Unknown user or invalid password
What it means
Basic-auth authenticate: the supplied user id is unknown or the password does not match the configured credentials hash, so authentication is rejected with the generic unknown-user/invalid-password error.
Source
Thrown at pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderBasic.java:135
return "basic";
}
@Override
public void incrementFailureMetric(Enum<?> errorCode) {
authenticationMetrics.recordFailure(errorCode);
}
@Override
public String authenticate(AuthenticationDataSource authData) throws AuthenticationException {
AuthParams authParams = new AuthParams(authData);
String userId = authParams.getUserId();
String password = authParams.getPassword();
String msg = "Unknown user or invalid password";
ErrorCode errorCode = ErrorCode.UNKNOWN;
try {
if (users.get(userId) == null) {
errorCode = ErrorCode.INVALID_AUTH_DATA;
throw new AuthenticationException(msg);
}
String encryptedPassword = users.get(userId);
// For md5 algorithm
if ((users.get(userId).startsWith("$apr1"))) {
List<String> splitEncryptedPassword = Arrays.asList(encryptedPassword.split("\\$"));
if (splitEncryptedPassword.size() != 4 || !encryptedPassword
.equals(Md5Crypt.apr1Crypt(password.getBytes(), splitEncryptedPassword.get(2)))) {
errorCode = ErrorCode.INVALID_TOKEN;
throw new AuthenticationException(msg);
}
// For crypt algorithm
} else if (!encryptedPassword.equals(Crypt.crypt(password.getBytes(), encryptedPassword.substring(0, 2)))) {
errorCode = ErrorCode.INVALID_TOKEN;
throw new AuthenticationException(msg);
}
} catch (AuthenticationException exception) {View on GitHub (pinned to 820761864e)
Solutions
- Add the user to the basic auth config or use correct credentials
- Check for whitespace/case mismatches in the username
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderBasic.java:135 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/pulsar@820761864e (2026-09-06).
Data as JSON: /api/errors/b683973af143817c.
Report an issue: GitHub.