pentaho/pentaho-kettle · error · KettleException
SalesforceInput.Error.Connection
SalesforceInput.Error.Connection
Error message
SalesforceInput.Error.Connection
What it means
connect() wraps any ConnectionException whose code is NOT in the recognized auth-failure list as this generic KettleException, with the original exception attached. It signals the Salesforce SOAP connection attempt failed for a reason other than the known login codes.
Solutions
- Read the cause (KettleException#getCause) to find the real Salesforce error code.
- Update the Salesforce API version / wsc dependency used by the plugin.
- Check network access: proxy, firewall, and TLS settings for api.salesforce.com.
- Confirm the org has the API feature enabled (Enterprise/Unlimited/Developer editions).
Example fix
// before
catch (ConnectionException ex) { /* unmapped code swallowed into generic message */ }
// after
KettleException ke = ...; // in caller
logError("Salesforce connect failed", ke.getCause()); // inspect real code, then fix API version/proxy Defensive patterns
Strategy: try-catch
Try / catch
try {
conn.connect();
} catch (KettleException e) {
logError("Salesforce connection failed", e.getCause()); // inspect the unmapped ConnectionException code
throw e;
} Prevention
- Always log/getCause() to surface the real Salesforce code.
- Keep the Force.com WSC and API version current.
- Verify API access is enabled for the org and user profile.
When it happens
Trigger: connect() throwing ConnectionException with an unmapped ExceptionCode (e.g. API disabled, unknown server codes), or lower-level transport errors surfaced as ConnectionException.
Common situations: Salesforce API version not enabled for the org; new Salesforce error codes not yet handled by this old Kettle plugin; proxy/TLS issues surfacing as connection exceptions.
Understand the failure class
Background: "API request failed": what wrapped HTTP errors from external APIs mean and how to find the real cause — this error's family across 29 libraries.
Related errors
- \nFailed to update object, error message was: \n
- Failed to open SFTP session
- HTTPPOST.Error.CanNotReadURL
- JobFTPS.Error.Connecting
- JobGetMailsFromPOP.Error.Connecting
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/dcf92ce65ad2fb46.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/salesforce/core/src/main/java/org/pentaho/di/trans/steps/salesforce/SalesforceConnection.java:375
BaseMessages.getString( PKG, "SalesforceInput.Log.ServerTimestamp", getServerTimestamp() );
}
if ( log.isDetailed() ) {
log.logDetailed( BaseMessages.getString( PKG, "SalesforceInput.Log.Connected" ) );
}
} catch ( LoginFault ex ) {
// The LoginFault derives from AxisFault
ExceptionCode exCode = ex.getExceptionCode();
if ( exCode == ExceptionCode.FUNCTIONALITY_NOT_ENABLED
|| exCode == ExceptionCode.INVALID_CLIENT || exCode == ExceptionCode.INVALID_LOGIN
|| exCode == ExceptionCode.LOGIN_DURING_RESTRICTED_DOMAIN
|| exCode == ExceptionCode.LOGIN_DURING_RESTRICTED_TIME || exCode == ExceptionCode.ORG_LOCKED
|| exCode == ExceptionCode.PASSWORD_LOCKOUT || exCode == ExceptionCode.SERVER_UNAVAILABLE
|| exCode == ExceptionCode.TRIAL_EXPIRED || exCode == ExceptionCode.UNSUPPORTED_CLIENT ) {
throw new KettleException( BaseMessages.getString( PKG, "SalesforceInput.Error.InvalidUsernameOrPassword" ) );
}
throw new KettleException( BaseMessages.getString( PKG, "SalesforceInput.Error.Connection" ), ex );
} catch ( Exception e ) {
throw new KettleException( BaseMessages.getString( PKG, "SalesforceInput.Error.Connection" ), e );
}
}
public void query( boolean specifyQuery ) throws KettleException {
if ( getBinding() == null ) {
throw new KettleException( BaseMessages.getString( PKG, "SalesforceInput.Exception.CanNotGetBiding" ) );
}
try {
if ( !specifyQuery ) {
// check if we can query this Object
DescribeSObjectResult describeSObjectResult = getBinding().describeSObject( getModule() );
if ( describeSObjectResult == null ) {
throw new KettleException( BaseMessages.getString( PKG, "SalesforceInput.ErrorGettingObject" ) );
}View on GitHub (pinned to f3058517a1)