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

  1. Select a Palo-type database connection for the step in the dialog.
  2. Programmatically verify databaseMeta.getDatabaseInterface() instanceof PALODatabaseMeta before instantiating.
  3. 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

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


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)