pentaho/pentaho-kettle · error · KettleDatabaseException
UserInfo.Error.IncorrectPasswortLogin
Error message
UserInfo.Error.IncorrectPasswortLogin
What it means
loadUserInfo() validates its inputs before touching the repository. If the IUser object or the login string is null/empty, it throws a KettleDatabaseException wrapping the localized message 'UserInfo.Error.IncorrectPasswortLogin'. It signals that the caller supplied insufficient arguments to even attempt a user lookup, not that authentication failed.
Solutions
- Ensure the login string is non-null and non-empty before calling loadUserInfo
- Instantiate a valid IUser (e.g. new UserInfo()) instead of passing null
- Check where the login comes from (config, dialog, variable) and validate/fail fast if it is blank
Example fix
// before
repository.userDelegate.loadUserInfo(null, userField.getText(), passField.getText());
// after
String login = userField.getText();
if (login == null || login.isEmpty()) { throw new KettleException("Login is required"); }
repository.userDelegate.loadUserInfo(new UserInfo(), login, passField.getText()); Defensive patterns
Strategy: validation
Validate before calling
if (userInfo == null) throw new IllegalArgumentException("userInfo is required");
if (login == null || login.trim().isEmpty()) throw new IllegalArgumentException("login is required"); Type guard
boolean isBlank(String s) { return s == null || s.trim().isEmpty(); } Try / catch
try { repo.userDelegate.loadUserInfo(user, login, pass); } catch (KettleDatabaseException e) { handleMissingArgs(e); } Prevention
- Validate all user-supplied inputs before calling repository APIs
- Fail fast at configuration-load time when login variables are empty
- Centralize IUser creation in a factory that never returns null
When it happens
Trigger: Calling repository.userDelegate.loadUserInfo(userInfo, login, passwd) (or the repository-level convenience wrapper that delegates to it) with userInfo == null, login == null, or an empty login string.
Common situations: Reading user name/password from a properties file, environment variable, or job parameter that was never set; UI code passing a blank login field; refactoring that forgets to instantiate the IUser object before loading.
Understand the failure class
Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.
Related errors
- Attempting to create PDI Repository with no Active…
- MappingDialog.Exception.NotConnectedToRepository.Message
- UserInfo.Error.UserNotFound
- UserInfo.Error.UserNotLoaded
- AbortMeta.Exception.UnableToSaveStepInfoToRepository
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/d3cf97a5ff804912.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/repository/kdr/delegates/KettleDatabaseRepositoryUserDelegate.java:86
} else {
throw new KettleDatabaseException( BaseMessages.getString( PKG, "UserInfo.Error.UserNotFound", login ) );
}
} catch ( KettleDatabaseException dbe ) {
throw new KettleException( BaseMessages.getString( PKG, "UserInfo.Error.UserNotLoaded", login, "" ), dbe );
}
}
/**
* Load user with login from repository and verify the password...
*
* @param rep
* @param login
* @param passwd
* @throws KettleException
*/
public IUser loadUserInfo( IUser userInfo, String login, String passwd ) throws KettleException {
if ( userInfo == null || login == null || login.length() <= 0 ) {
throw new KettleDatabaseException( BaseMessages.getString( PKG, "UserInfo.Error.IncorrectPasswortLogin" ) );
}
try {
loadUserInfo( userInfo, login );
} catch ( KettleException ke ) {
throw new KettleAuthException( BaseMessages.getString( PKG, "UserInfo.Error.IncorrectPasswortLogin" ) );
}
// Verify the password:
// decrypt password if needed and compare with the one
String userPass = Encr.decryptPasswordOptionallyEncrypted( passwd );
if ( userInfo.getObjectId() == null || !userInfo.getPassword().equals( userPass ) ) {
throw new KettleAuthException( BaseMessages.getString( PKG, "UserInfo.Error.IncorrectPasswortLogin" ) );
}
return userInfo;
}
public void saveUserInfo( IUser userInfo ) throws KettleException {View on GitHub (pinned to f3058517a1)