pentaho/pentaho-kettle · error · KettleException
TransformClassBase.Exception.UnableToFindInfoRowSetForStep
Error message
TransformClassBase.Exception.UnableToFindInfoRowSetForStep
What it means
Thrown by TransformClassBase.findInfoRowSet(tag) when the tag resolved to a step name but findInputRowSet(stepname) returned null, i.e. no info RowSet exists for that step at runtime. The mapping exists but the corresponding input rowset is not available in the running transformation.
Solutions
- Verify the mapped step name still exists and is spelled exactly the same in the transformation.
- Reconnect the info step hop so an input RowSet is created for this step.
- Re-open the UDJC step dialog and re-select the info step to refresh the stored mapping.
Example fix
// before: mapping points to a renamed step
findInfoRowSet("lookupStream"); // step renamed to 'Lookup Stream'
// after: update the info mapping to the new step name
addInfoSource("lookupStream", "Lookup Stream"); Defensive patterns
Strategy: validation
Validate before calling
// after resolving stepname from the tag, confirm the hop exists in the transformation metadata
String stepname = data.infoMap.get(tag); if (stepname == null || transMeta.findStep(stepname) == null) { /* fix mapping */ } Type guard
boolean infoStepExists(String stepname) { return stepname != null && getTransMeta().findStep(stepname) != null; } Try / catch
try { RowSet rs = findInfoRowSet(tag); ... } catch (KettleException e) { logError("Info RowSet unavailable for step mapped by tag " + tag, e); throw e; } Prevention
- Re-save the UDJC step after renaming connected steps
- Verify hops are enabled and connected in Spoon
- Preview the info step before running the transformation
When it happens
Trigger: findInfoRowSet("tag") where data.infoMap maps the tag to a step name that has no active input rowset — e.g. the info step is not actually connected, is not running, or its name changed after the mapping was stored.
Common situations: Step name mismatch after renaming a step in Spoon while the stored mapping kept the old name; the info step is disabled or fails to start; running the transformation standalone without the info step's transformation scope.
Understand the failure class
Background: "Not found" and "does not exist" errors: why "Task not found", "No such folder", and "Can't find" fire when a lookup comes back empty — this error's family across 14 libraries.
Related errors
- TransformClassBase.Exception.UnableToFindInfoStepNameForTag
- TransformClassBase.Exception.UnableToFindTargetStepNameForTa…
- TransformClassBase.Exception.UnableToFindTargetRowSetForStep
- A deadlock was detected between steps
- BaseStep.Exception.SourceStepToReadFromCantRunInMultipleCopies
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/a4cf7ac5be6772b6.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/trans/steps/userdefinedjavaclass/TransformClassBase.java:580
public String getParameter( String tag ) {
if ( tag == null ) {
return null;
}
return parent.environmentSubstitute( data.parameterMap.get( tag ) );
}
public RowSet findInfoRowSet( String tag ) throws KettleException {
if ( tag == null ) {
return null;
}
String stepname = data.infoMap.get( tag );
if ( Utils.isEmpty( stepname ) ) {
throw new KettleException( BaseMessages.getString(
PKG, "TransformClassBase.Exception.UnableToFindInfoStepNameForTag", tag ) );
}
RowSet rowSet = findInputRowSet( stepname );
if ( rowSet == null ) {
throw new KettleException( BaseMessages.getString(
PKG, "TransformClassBase.Exception.UnableToFindInfoRowSetForStep", stepname ) );
}
return rowSet;
}
public RowSet findTargetRowSet( String tag ) throws KettleException {
if ( tag == null ) {
return null;
}
String stepname = data.targetMap.get( tag );
if ( Utils.isEmpty( stepname ) ) {
throw new KettleException( BaseMessages.getString(
PKG, "TransformClassBase.Exception.UnableToFindTargetStepNameForTag", tag ) );
}
RowSet rowSet = findOutputRowSet( stepname );
if ( rowSet == null ) {
throw new KettleException( BaseMessages.getString(
PKG, "TransformClassBase.Exception.UnableToFindTargetRowSetForStep", stepname ) );View on GitHub (pinned to f3058517a1)