pentaho/pentaho-kettle · error · KettleException
A connection of type PALO is expected
Error message
A connection of type PALO is expected
What it means
PaloDimInputData's constructor validates that the supplied database connection is a PALO-type connection before creating the PaloHelper. If the DatabaseMeta points to any other database type (MySQL, Postgres, etc.), it throws this KettleException immediately during step data initialization.
Solutions
- Open the step dialog and select/define a connection whose type is PALO.
- If no Palo connection exists, create one in the transformation's database connections pointing at the Palo OLAP server.
- If the connection type looks correct but fails after an upgrade, recreate the connection so the plugin's PALODatabaseMeta is registered properly.
Example fix
// before (in transformation XML) <connection><type>MYSQL</type><name>conn</name>...</connection> // after <connection><type>PALO</type><name>palo-conn</name><hostname>localhost</hostname><port>7777</port></connection>
Defensive patterns
Strategy: type-guard
Validate before calling
// Before step init, assert the connection type
DatabaseMeta dbMeta = transMeta.findDatabase(connName);
if (dbMeta == null || !(dbMeta.getDatabaseInterface() instanceof PALODatabaseMeta)) {
throw new IllegalArgumentException("Connection '" + connName + "' must be of type PALO");
} Type guard
boolean isPaloConnection(DatabaseMeta db) {
return db != null && db.getDatabaseInterface() instanceof PALODatabaseMeta;
} Prevention
- Always create the step's connection as type PALO in the dialog
- Check connection type after migrating transformations between environments
- Recreate connections whose type plugin registration may have changed after upgrades
When it happens
Trigger: The Palo Dim Input step's databaseMeta was configured with a non-PALO connection type; the step initializes (init/processRow begins) and constructs PaloDimInputData(databaseMeta).
Common situations: User selected a generic relational database connection in the step dialog instead of a Palo connection; a transformation was migrated and the connection type was reset; the Palo plugin's database type was renamed across versions leaving a stale connection type.
Understand the failure class
Background: "is not a compatible type" / "cannot merge" errors: when a value's type doesn't match what the library requires — this error's family across 65 libraries.
Related errors
- A connection of type PALO is expected
- Number of levels must be greater that 0 to process the rows
- There is no Palo database server connection defined
- A server socket allocation always has to accompanied by…
- DimensionLookupMeta.Error.NoTechnicalKeySpecified
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/95722bdc5466d95a.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/diminput/PaloDimInputData.java:38
*/
package org.pentaho.di.trans.steps.palo.diminput;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.database.PALODatabaseMeta;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.core.logging.DefaultLogLevel;
import org.pentaho.di.palo.core.PaloHelper;
import org.pentaho.di.trans.step.BaseStepData;
import org.pentaho.di.trans.step.StepDataInterface;
public class PaloDimInputData extends BaseStepData implements StepDataInterface {
public PaloHelper helper;
public PaloDimInputData( DatabaseMeta databaseMeta ) throws KettleException {
super();
if ( !( databaseMeta.getDatabaseInterface() instanceof PALODatabaseMeta ) ) {
throw new KettleException( "A connection of type PALO is expected" );
}
this.helper = new PaloHelper( databaseMeta, DefaultLogLevel.getLogLevel() );
}
}
View on GitHub (pinned to f3058517a1)