pentaho/pentaho-kettle · error · KettleException
Failed to add Cell Row:
Error message
Failed to add Cell Row:
What it means
Thrown by PaloCellOutput.processRow when writing an input row into the Palo cube (directly or from batchCache flush) fails with any exception. The message includes the stringified row content and chains the original exception.
Solutions
- Read the chained cause exception to find the failing cell or value.
- Verify the field mappings (dimensions and measure) match the target cube's exact structure and data types.
- Validate input rows (types, null handling) upstream before the Palo Cell Output step.
- Reduce batch size or disable batching to isolate the failing row.
- Check Palo server logs and connection stability.
Example fix
null
Defensive patterns
Strategy: validation
Validate before calling
// before run: verify each input row matches cube field count/types
for (Object[] row : rows) { if (row.length != expectedFieldCount) throw new IllegalArgumentException("row width mismatch"); } Try / catch
try { trans.execute() } catch (KettleException e) { if (e.getMessage().startsWith("Failed to add Cell Row:")) { /* inspect e.getCause() and the row printed in the message */ } } Prevention
- Match field order and types exactly to the cube's dimensions/measure
- Validate numeric values for measures before writing
- Reduce/disable batching to isolate failing rows
- Watch Palo server logs during bulk loads
When it happens
Trigger: processRow called with data that doesn't match cube dimension/measure types, an invalid cell coordinate, a Palo server error during addCell/flush of batchCache, or a dropped connection.
Common situations: Field-to-dimension mapping mismatched with cube structure (wrong order/types); string values non-numeric where a measure is expected; batch flush hitting a server-side constraint; Palo server restart mid-run.
Related errors
- Failed to process some row
- Failed to clear Cube
- Failed to fetch 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/e45a90138b7e5cb7.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/celloutput/PaloCellOutput.java:102
newRow[i] = getInputRowMeta().getString( r, data.indexes[i] );
}
} else {
newRow[i] = getInputRowMeta().getString( r, data.indexes[i] );
}
}
data.batchCache.add( newRow );
if ( data.batchCache.size() == meta.getCommitSize() ) {
try {
data.helper.addCells( data.batchCache, meta.getUpdateMode(), meta.getSplashMode() );
for ( int i = 0; i < data.batchCache.size(); i++ ) {
incrementLinesOutput();
}
} finally {
data.batchCache.clear();
}
}
} catch ( Exception e ) {
throw new KettleException( "Failed to add Cell Row: " + row, e );
}
return true;
}
@Override
public final boolean init( StepMetaInterface smi, StepDataInterface sdi ) {
meta = (PaloCellOutputMeta) smi;
data = (PaloCellOutputData) sdi;
if ( super.init( smi, sdi ) ) {
try {
this.logDebug( "Meta Fields: " + meta.getFields().size() );
data.helper = new PaloHelper( meta.getDatabaseMeta(), getLogLevel() );
data.helper.connect();
data.helper.loadCubeCache( meta.getCube(), meta.getEnableDimensionCache(), meta.getPreloadDimensionCache() );
data.batchCache.clear();
return true;View on GitHub (pinned to f3058517a1)