pentaho/pentaho-kettle · error · KettleStepException

There is no Palo database server connection defined

Error message

There is no Palo database server connection defined

What it means

Thrown by PaloCellInputMeta.getFields when databaseMeta is null. getFields must connect to the Palo server to compute the output row layout from the cube's dimensions, which is impossible without a configured connection.

Solutions

  1. Assign a Palo database connection to the step in the transformation dialog.
  2. Confirm the shared connection exists in the repository/metastore and is referenced correctly.
  3. Re-export/import the transformation including connection definitions.
  4. Check databaseMeta before executing getFields programmatically and fail early with a clear message.

Example fix

// before
meta.getFields(...); // throws if connection not set
// after
if (meta.getDatabaseMeta() == null) {
  meta.setDatabaseMeta(transMeta.findDatabase("PaloServer"));
}
meta.getFields(...);
Defensive patterns

Strategy: validation

Validate before calling

if (meta.getDatabaseMeta() == null) { meta.setDatabaseMeta(transMeta.findDatabase("PaloServer")); if (meta.getDatabaseMeta() == null) throw new IllegalStateException("Palo connection not configured"); }

Try / catch

try { rowMeta = buildRow(meta); } catch (KettleStepException e) { /* connection missing — configure before run */ }

Prevention

When it happens

Trigger: Row-layout negotiation (getFields) invoked while the step's database connection field is unset — e.g. transformation loaded without its shared connection, or connection never assigned in the dialog.

Common situations: Transformation imported without referenced connection objects; connection deleted from the repository after the step was configured; running a transformation built programmatically without setting the connection.

Understand the failure class

Background: "is required", "must be set", "missing required field": configuration validation errors across open-source libraries — this error's family across 36 libraries.

Related errors


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

Appendix: source

Thrown at plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/cellinput/PaloCellInputMeta.java:134

        String fieldName = XMLHandler.getTagValue( fnode, "fieldname" );
        String fieldType = XMLHandler.getTagValue( fnode, "fieldtype" );
        this.fields.add( new DimensionField( dimensionName, fieldName, fieldType ) );
      }
    } catch ( Exception e ) {
      throw new KettleXMLException( "Unable to load step info from XML", e );
    }
  }

  @Override
  public void setDefault() {
  }

  @Override
  public void getFields( Bowl bowl, final RowMetaInterface row, final String origin, final RowMetaInterface[] info,
      final StepMeta nextStep, final VariableSpace space, Repository repository, IMetaStore metaStore )
    throws KettleStepException {
    if ( databaseMeta == null ) {
      throw new KettleStepException( "There is no Palo database server connection defined" );
    }
    final PaloHelper helper = new PaloHelper( databaseMeta, DefaultLogLevel.getLogLevel() );
    try {
      helper.connect();
      try {
        final RowMetaInterface rowMeta = helper.getCellRowMeta( this.cube, this.fields, this.cubeMeasure );
        row.addRowMeta( rowMeta );
      } finally {
        helper.disconnect();
      }
    } catch ( Exception e ) {
      throw new KettleStepException( e );
    }
  }

  @Override
  public String getXML() {
    StringBuffer retval = new StringBuffer();

View on GitHub (pinned to f3058517a1)