pentaho/pentaho-kettle · error · KettleException

A connection of type PALO is expected

Error message

A connection of type PALO is expected

What it means

PaloDimOutputData's constructor validates the passed DatabaseMeta: it only accepts a PALO-type connection (databaseMeta.getDatabaseInterface() instanceof PALODatabaseMeta). Any other database type throws this KettleException immediately at step data initialization.

Solutions

  1. Select a connection of type PALO in the step's connection dialog (or create one)
  2. Check that the referenced connection still exists and is PALO-typed in the target environment
  3. In code, verify databaseMeta.getDatabaseInterface() instanceof PALODatabaseMeta before constructing

Example fix

// before
new PaloDimOutputData(dbMeta); // dbMeta is MySQL
// after
if (dbMeta.getDatabaseInterface() instanceof PALODatabaseMeta) {
  data = new PaloDimOutputData(dbMeta);
}
Defensive patterns

Strategy: validation

Validate before calling

if (!(databaseMeta.getDatabaseInterface() instanceof PALODatabaseMeta)) {
  throw new KettleException("Select a PALO-type connection");
}

Type guard

boolean isPaloConnection(DatabaseMeta meta) { return meta.getDatabaseInterface() instanceof PALODatabaseMeta; }

Try / catch

try { data = new PaloDimOutputData(databaseMeta); } catch (KettleException e) {
  logError("Wrong connection type: " + e.getMessage(), e); setErrors(1);
}

Prevention

When it happens

Trigger: Constructing PaloDimOutputData (i.e., running the step) with a DatabaseMeta whose connection type is MySQL, Postgres, generic JDBC, etc., instead of a Palo connection.

Common situations: User selected a regular database connection in the step dialog instead of a defined Palo connection; transformation copied between environments where the Palo connection was replaced by a substitute; programmatically instantiating the step 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


AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13). Data as JSON: /api/errors/eec388e9129fd680. Report an issue: GitHub.

Appendix: source

Thrown at plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/dimoutput/PaloDimOutputData.java:42

import java.util.ArrayList;

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 PaloDimOutputData extends BaseStepData implements StepDataInterface {
  public PaloHelper helper;
  public int[] indexes;
  public ArrayList<String> elementNamesBatch = new ArrayList<String>();

  public PaloDimOutputData( DatabaseMeta databaseMeta ) throws KettleException {
    super();
    if ( !( databaseMeta.getDatabaseInterface() instanceof PALODatabaseMeta ) ) {
      throw new KettleException( "A connection of type PALO is expected" );
    }

    // org.pentaho.di.core.logging.
    this.helper = new PaloHelper( databaseMeta, DefaultLogLevel.getLogLevel() );
  }
}

View on GitHub (pinned to f3058517a1)