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

  1. Open the step's dialog and select/assign a Palo-type database connection.
  2. Verify the DatabaseMeta's connection type is Palo before instantiating the step data.
  3. 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

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


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)