{"record":{"id":"e45a90138b7e5cb7","repo":"pentaho/pentaho-kettle","slug":"failed-to-add-cell-row","errorCode":null,"errorMessage":"Failed to add Cell Row: ","messagePattern":"Failed to add Cell Row: ","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/celloutput/PaloCellOutput.java","lineNumber":102,"sourceCode":"            newRow[i] = getInputRowMeta().getString( r, data.indexes[i] );\n          }\n        } else {\n          newRow[i] = getInputRowMeta().getString( r, data.indexes[i] );\n        }\n      }\n      data.batchCache.add( newRow );\n      if ( data.batchCache.size() == meta.getCommitSize() ) {\n        try {\n          data.helper.addCells( data.batchCache, meta.getUpdateMode(), meta.getSplashMode() );\n          for ( int i = 0; i < data.batchCache.size(); i++ ) {\n            incrementLinesOutput();\n          }\n        } finally {\n          data.batchCache.clear();\n        }\n      }\n    } catch ( Exception e ) {\n      throw new KettleException( \"Failed to add Cell Row: \" + row, e );\n    }\n\n    return true;\n  }\n\n  @Override\n  public final boolean init( StepMetaInterface smi, StepDataInterface sdi ) {\n    meta = (PaloCellOutputMeta) smi;\n    data = (PaloCellOutputData) sdi;\n\n    if ( super.init( smi, sdi ) ) {\n      try {\n        this.logDebug( \"Meta Fields: \" + meta.getFields().size() );\n        data.helper = new PaloHelper( meta.getDatabaseMeta(), getLogLevel() );\n        data.helper.connect();\n        data.helper.loadCubeCache( meta.getCube(), meta.getEnableDimensionCache(), meta.getPreloadDimensionCache() );\n        data.batchCache.clear();\n        return true;","sourceCodeStart":84,"sourceCodeEnd":120,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/celloutput/PaloCellOutput.java#L84-L120","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"null","handlingStrategy":"validation","validationCode":"// before run: verify each input row matches cube field count/types\nfor (Object[] row : rows) { if (row.length != expectedFieldCount) throw new IllegalArgumentException(\"row width mismatch\"); }","typeGuard":null,"tryCatchPattern":"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 */ } }","preventionTips":["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"],"tags":["kettle","palo","olap","write","row-processing"],"backgroundTag":"database-write-failed","analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}