pentaho/pentaho-kettle · error · KettleException

TableInput.Exception.NoParametersFound

Error message

TableInput.Exception.NoParametersFound

What it means

TableInput.readStartDate throws this when the step expects parameters from an info stream (insert/execute with 'Insert data from step' checked) but the parameters row metadata is empty — the info stream delivered no parameter columns. The step cannot bind the SQL statement's parameters without them.

Solutions

  1. Ensure the info-stream step outputs at least one field matching the ? placeholders in the SQL
  2. Check the field count of the upstream step via 'Show input fields' on the TableInput hop
  3. If parameters are not needed, uncheck the parameter/info-stream option in the TableInput dialog
  4. Verify the upstream step actually executes and emits rows before/alongside TableInput

Example fix

// before: info step emits no fields
Constant (no fields defined) -> TableInput (SELECT * FROM t WHERE id = ?)
// after: define the parameter field
Constant: field 'id' = 42 -> TableInput (SELECT * FROM t WHERE id = ?)
Defensive patterns

Strategy: validation

Validate before calling

// verify the info step emits parameter fields before running
RowMetaInterface infoFields = transMeta.getInfoStepFields(tableInputStepMeta);
if (infoFields != null && infoFields.size() == 0) {
  throw new IllegalStateException("Info step for TableInput emits no parameter fields; add one per ? placeholder");
}

Try / catch

try { trans.execute(null); }
catch (KettleException e) {
  if (e.getMessage().contains("NoParametersFound")) {
    logError("Info stream has no parameter fields — fix upstream step or uncheck parameter option");
  }
}

Prevention

When it happens

Trigger: Running a TableInput step with 'Execute for each row' / info-stream parameters enabled where rowSet was found but parametersMeta.size() == 0 — the connected info step emitted rows with no fields, or no rows/fields arrived before the check.

Common situations: Wiring a Transform/Constant step that outputs zero fields into the TableInput info port; ordering issues where the info step hasn't produced data; deleting fields from the info step after wiring the hop.

Understand the failure class

Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.

Related errors


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

Appendix: source

Thrown at engine/src/main/java/org/pentaho/di/trans/steps/tableinput/TableInput.java:85

    if ( log.isDetailed() ) {
      logDetailed( BaseMessages.getString( PKG, "TableInput.Log.ReadingFromStep", data.infoStream.getStepname() ) );
    }

    RowMetaInterface parametersMeta = new RowMeta();
    Object[] parametersData = new Object[] {};

    RowSet rowSet = findInputRowSet( data.infoStream.getStepname() );
    if ( rowSet != null ) {
      Object[] rowData = getRowFrom( rowSet ); // rows are originating from "lookup_from"
      while ( rowData != null ) {
        parametersData = RowDataUtil.addRowData( parametersData, parametersMeta.size(), rowData );
        parametersMeta.addRowMeta( rowSet.getRowMeta() );

        rowData = getRowFrom( rowSet ); // take all input rows if needed!
      }

      if ( parametersMeta.size() == 0 ) {
        throw new KettleException( BaseMessages.getString( PKG,
          "TableInput.Exception.NoParametersFound", data.infoStream.getStepname() ) );
      }
    } else {
      throw new KettleException( BaseMessages.getString( PKG, "TableInput.Exception.NoRowSetFound", data.infoStream.getStepname() ) );
    }

    RowMetaAndData parameters = new RowMetaAndData( parametersMeta, parametersData );

    return parameters;
  }

  public boolean processRow( StepMetaInterface smi, StepDataInterface sdi ) throws KettleException {
    dbLock.lock();
    try {

      if ( first ) { // we just got started

        Object[] parameters;

View on GitHub (pinned to f3058517a1)