pentaho/pentaho-kettle · error · KettleException
Failed to add row to the row buffer
Error message
Failed to add row to the row buffer
What it means
While processing each input row the step adds element names/rows to an internal batch buffer inside a try block; any exception there (e.g. from the Palo helper adding elements or the element lookup) is wrapped as 'Failed to add row to the row buffer'. Every 100 buffered rows it commits via commitBatch().
Solutions
- Inspect the wrapped cause in the stack trace to identify the failing row and value
- Validate upstream data: no nulls in level fields and types match the configured fieldtype per level
- Reduce batch size / check the Palo server connection stability
- Test with a small sample of rows (Preview) to isolate the bad record
Example fix
// before String element = row[i]; // may be null // after if (row[i] == null) row[i] = ""; // or filter/repair nulls upstream
Defensive patterns
Strategy: validation
Validate before calling
// validate row values before adding to buffer
for (int idx : data.indexes) {
if (idx >= 0 && rowData[idx] == null) throw new KettleException("Null element value at index " + idx);
} Type guard
boolean isValidElement(Object v) { return v != null && !v.toString().isEmpty(); } Try / catch
try { addToBatch(row); } catch (Exception e) {
logError("Row buffer add failed: " + e.getCause(), e); setErrors(1);
} Prevention
- Filter/repair nulls in level fields upstream
- Ensure field types match the configured fieldtype per level
- Preview with a small sample to catch bad rows early
- Keep the Palo session/connection healthy for long runs
When it happens
Trigger: An exception is thrown while adding a row's element data to the batch: element type/format mismatch with the Palo dimension, null or malformed values for a level, or a Palo connection error mid-batch.
Common situations: Incoming field value doesn't match the level's configured field type; nulls fed where element names are required; Palo server connection dropped after earlier rows succeeded.
Related errors
- Failed to add Cell Row:
- Failed to fetch some row
- Failed to process some row
- A connection of type PALO is expected
- A connection of type PALO is expected
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/3dcd8ab598ff445f.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/dimoutput/PaloDimOutput.java:148
child = this.consolidations.getConsolidationElement( elementName );
}
if ( parent != null ) {
parent.addChild( child, consolidation_factor );
}
}
parent = child;
}
}
// Should probably make this a parameter on the dialog
if ( data.elementNamesBatch.size() % 100 == 0 ) {
commitBatch();
}
} catch ( Exception e ) {
throw new KettleException( "Failed to add row to the row buffer", e );
}
}
// this also waits for a previous step to be finished.
if ( r == null ) { // no more input to be expected...
try {
if ( data.elementNamesBatch.size() > 0 ) {
commitBatch();
}
// Because we add rows in bulk, the dimension cache isn't complete. It only keeps a list
// of added items for validation. If the cache must be pre-loaded, pre-load it now.
data.helper.clearDimensionCache();
data.helper.loadDimensionCache( meta.getDimension(), meta.getEnableElementCache(), meta
.getPreloadElementCache() );
// if it's the last row create the dimension
this.logBasic( "All rows have been added. Looking for consolidations" );View on GitHub (pinned to f3058517a1)