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 PaloCellOutputData constructor when the supplied DatabaseMeta is not a PALO-type connection. Palo cell output can only run against a Palo OLAP connection, so non-PALO interfaces are rejected before the PaloHelper is created.
Solutions
- Select a Palo-type database connection for the step in the dialog.
- Programmatically verify databaseMeta.getDatabaseInterface() instanceof PALODatabaseMeta before instantiating.
- Ensure the Palo connection definition is exported/imported together with the transformation.
Example fix
// before
new PaloCellOutputData(relationalDbMeta); // throws
// after
if (dbMeta.getDatabaseInterface() instanceof PALODatabaseMeta) {
data = new PaloCellOutputData(dbMeta);
} 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 PaloCellOutputData(dbMeta); } catch (KettleException e) { /* wrong connection type — reconfigure step */ } Prevention
- Only attach Palo connections to Palo Cell Output steps
- Verify connection references after moving transformations between environments
- Check connection type in code when building metadata programmatically
When it happens
Trigger: Creating PaloCellOutputData with a DatabaseMeta whose getDatabaseInterface() is not PALODatabaseMeta — the step's connection points to a relational database instead of Palo.
Common situations: Wrong connection selected in the Palo Cell Output dialog; transformation transported between environments losing the Palo connection reference; programmatic construction with an arbitrary 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/58828b6d68b2c5c7.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/celloutput/PaloCellOutputData.java:43
import java.util.List;
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 PaloCellOutputData extends BaseStepData implements StepDataInterface {
public PaloHelper helper;
public int[] indexes;
public List<Object[]> batchCache = new ArrayList<Object[]>();
public PaloCellOutputData( 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)