pentaho/pentaho-kettle · error · KettleException
Failed to fetch some row
Error message
Failed to fetch some row
What it means
KettleException thrown in PaloDimInput.processRow after the Palo helper retrieves dimension rows via a listener callback. If the asynchronous listener recorded any exception while converting Palo dimension elements into Kettle rows, the step aborts with this wrapped error.
Solutions
- Read the wrapped listener.throwedException cause to find which element/row failed.
- Verify the declared field types for each dimension level in the step match the Palo element data types.
- Re-check the Palo server: ensure the dimension and its elements are intact and reachable.
- Add error handling on the step (error rows) or filter problematic elements before processing.
Example fix
// before: level field type Numeric, element value "N/A" -> conversion throws // after: set the level's FieldType to String in the Palo Dim Input step, or fix element data in Palo
Defensive patterns
Strategy: validation
Validate before calling
// Before running, verify dimension element types match declared field types
for (PaloDimensionLevel lvl : meta.getLevels()) {
if (lvl.getFieldName() == null || lvl.getFieldType() == null) {
throw new IllegalStateException("Level " + lvl.getName() + " missing field mapping");
}
} Try / catch
try {
// run transformation/step
} catch (KettleException e) {
log.error("Palo dim row fetch failed: " + e.getCause(), e);
// enable step error handling to route bad rows instead of aborting
} Prevention
- Match level field types to actual Palo element data
- Enable step error handling to tolerate bad rows
- Verify Palo server connectivity and dimension integrity before runs
- Test the dimension fetch with a preview row limit first
When it happens
Trigger: data.helper.getDimensionRows() runs and the internal listener's processElement callback throws for one or more elements (e.g. type conversion failure of an element name/value into the declared field type), leaving listener.throwedException non-null.
Common situations: Dimension level field type declared in the step (e.g. Numeric) doesn't match the actual Palo element data; element names contain characters that break row conversion; the Palo dimension was changed/consolidated while the transformation ran; connection to the Palo OLAP server dropped mid-fetch.
Related errors
- Failed to add Cell Row:
- Failed to process some row
- e.getMessage()
- Failed to add row to the row buffer
- Failed to clear Cube
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/3ea9d34e8ee86c7a.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/diminput/PaloDimInput.java:96
return false;
}
public void oneMoreElement( Object element ) {
final Object[] row = (Object[]) element;
try {
assert ( rowMeta.size() != row.length );
incrementLinesInput();
putRow( rowMeta, row );
} catch ( Exception ex ) {
this.throwedException = ex;
this.cancel();
}
}
};
data.helper.getDimensionRows( meta.getDimension(), rowMeta, meta.getBaseElementsOnly(), listener );
if ( listener.throwedException != null ) {
throw new KettleException( "Failed to fetch some row", listener.throwedException );
}
this.logBasic( "Process Ended." );
setOutputDone();
return false;
}
public boolean init( StepMetaInterface smi, StepDataInterface sdi ) {
meta = (PaloDimInputMeta) smi;
data = (PaloDimInputData) sdi;
if ( super.init( smi, sdi ) ) {
try {
this.logDebug( "Meta Levels: " + meta.getLevels().size() );
data.helper = new PaloHelper( meta.getDatabaseMeta(), getLogLevel() );
data.helper.connect();
return true;
} catch ( Exception e ) {
logError( "An error occurred, processing will be stopped: " + e.getMessage() );View on GitHub (pinned to f3058517a1)