pentaho/pentaho-kettle · error · KettleException
LucidDBStreamingLoaderMeta.Exception.ConnectionNotDefined
Error message
LucidDBStreamingLoaderMeta.Exception.ConnectionNotDefined
What it means
At the end of the table-field lookup, if the step's databaseMeta is null (no database connection defined for this step) the meta throws KettleException with the localized 'ConnectionNotDefined' message before even attempting to connect.
Solutions
- Open the step dialog and select a database connection; save the transformation.
- Re-create/import the missing shared database connection so the reference resolves.
- When importing from repository/XML, choose to import shared objects (connections).
- Add a metadata check before execution to fail fast on null connection.
Example fix
// before (step XML) <connection></connection> // after <connection>LUCIDDB_PROD</connection>
Defensive patterns
Strategy: validation
Validate before calling
if (meta.getDatabaseMeta() == null) {
throw new KettleException("LucidDB Streaming Loader: no database connection defined; select one in the step dialog");
} Try / catch
try {
meta.getFields(...);
} catch (KettleException e) {
if (e.getMessage().contains("ConnectionNotDefined")) {
logError("Attach a database connection to the step");
}
throw e;
} Prevention
- Select a connection in every loader step; never save with it blank.
- When exporting/importing transformations, include shared connections.
- After deleting a shared connection, audit steps that referenced it.
- Run metadata validation on the transformation before scheduling.
When it happens
Trigger: getFields()/SQL generation is invoked on a LucidDB Streaming Loader step whose 'Connection' field is empty — e.g. the connection referenced in the XML no longer exists in this environment.
Common situations: Transformation exported/imported without its shared connection; the shared DB connection was deleted; step dialog saved without selecting a connection; repository import missing shared objects.
Understand the failure class
Background: "is required", "must be set", "missing required field": configuration validation errors across open-source libraries — this error's family across 36 libraries.
Related errors
- SynchronizeAfterMergeMeta.Exception.ConnectionNotDefined
- Could not execute specified in a repository since we're not…
- DatabaseJoinMeta.Exception.ErrorObtainingFields
- DynamicSQLRowMeta.Exception.ErrorObtainingFields
- GPBulkLoaderMeta.Exception.ConnectionNotDefined
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/43c36d8055fc48cd.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/lucid-db-streaming-loader/core/src/main/java/org/pentaho/di/trans/steps/luciddbstreamingloader/LucidDBStreamingLoaderMeta.java:852
// Check if this table exists...
if ( db.checkTableExists( schemaTable ) ) {
return db.getTableFields( schemaTable );
} else {
throw new KettleException( BaseMessages.getString(
PKG, "LucidDBStreamingLoaderMeta.Exception.TableNotFound" ) );
}
} else {
throw new KettleException( BaseMessages.getString(
PKG, "LucidDBStreamingLoaderMeta.Exception.TableNotSpecified" ) );
}
} catch ( Exception e ) {
throw new KettleException( BaseMessages.getString(
PKG, "LucidDBStreamingLoaderMeta.Exception.ErrorGettingFields" ), e );
} finally {
db.close();
}
} else {
throw new KettleException( BaseMessages.getString(
PKG, "LucidDBStreamingLoaderMeta.Exception.ConnectionNotDefined" ) );
}
}
/**
* @return the schemaName
*/
public String getSchemaName() {
return schemaName;
}
/**
* @param schemaName
* the schemaName to set
*/
public void setSchemaName( String schemaName ) {
this.schemaName = schemaName;View on GitHub (pinned to f3058517a1)