pentaho/pentaho-kettle · error · KettleException
A connection of type PALO is expected
Error message
A connection of type PALO is expected
What it means
Thrown in the PaloCellInputData constructor when the supplied DatabaseMeta is not a PALO-type connection. The Palo helper only works against Palo OLAP servers, so any other database interface is rejected before a PaloHelper is created.
Solutions
- Open the step's dialog and select/assign a Palo-type database connection.
- Verify the DatabaseMeta's connection type is Palo before instantiating the step data.
- Ensure the connection definition survived transport (export/import can change connection references).
Example fix
// before
DatabaseMeta conn = transMeta.findDatabase("MyMySQLConn");
data = new PaloCellInputData(conn); // throws
// after
DatabaseMeta conn = transMeta.findDatabase("PaloServer");
if (conn.getDatabaseInterface() instanceof PALODatabaseMeta) {
data = new PaloCellInputData(conn);
} Defensive patterns
Strategy: type-guard
Validate before calling
if (!(dbMeta.getDatabaseInterface() instanceof PALODatabaseMeta)) { throw new IllegalArgumentException("Step requires a PALO connection"); } Type guard
boolean isPalo(DatabaseMeta dbMeta) { return dbMeta != null && dbMeta.getDatabaseInterface() instanceof PALODatabaseMeta; } Try / catch
try { data = new PaloCellInputData(dbMeta); } catch (KettleException e) { /* connection type wrong — prompt user to select Palo connection */ } Prevention
- Assign only Palo-type connections to Palo steps
- Verify connection type after import/export of transformations
- Name connections clearly (e.g. 'PaloServer') to avoid mis-selection
When it happens
Trigger: Creating PaloCellInputData with a DatabaseMeta whose getDatabaseInterface() is not an instance of PALODatabaseMeta — i.e. the step's connection field points at MySQL, Oracle, Postgres, etc.
Common situations: User selected a regular relational database connection in the Palo Cell Input step dialog; transformation copied from another environment where the connection type was changed; programmatic metadata construction with the wrong DatabaseMeta.
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
- There is no Palo database server connection defined
- All fields must have an output type to do the preview
- Caught a number format exception converting minimum length…
- Commit size must be an integer.
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/2bb32819696f19a9.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/cellinput/PaloCellInputData.java:39
package org.pentaho.di.trans.steps.palo.cellinput;
import org.pentaho.di.palo.core.PaloHelper;
import org.pentaho.di.trans.step.BaseStepData;
import org.pentaho.di.trans.step.StepDataInterface;
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;
public class PaloCellInputData extends BaseStepData implements StepDataInterface {
public PaloHelper helper;
public PaloCellInputData( 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)