{"record":{"id":"3ea9d34e8ee86c7a","repo":"pentaho/pentaho-kettle","slug":"failed-to-fetch-some-row","errorCode":null,"errorMessage":"Failed to fetch some row","messagePattern":"Failed to fetch some row","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/diminput/PaloDimInput.java","lineNumber":96,"sourceCode":"        return false;\n      }\n\n      public void oneMoreElement( Object element ) {\n        final Object[] row = (Object[]) element;\n        try {\n          assert ( rowMeta.size() != row.length );\n          incrementLinesInput();\n          putRow( rowMeta, row );\n        } catch ( Exception ex ) {\n          this.throwedException = ex;\n          this.cancel();\n        }\n      }\n    };\n\n    data.helper.getDimensionRows( meta.getDimension(), rowMeta, meta.getBaseElementsOnly(), listener );\n    if ( listener.throwedException != null ) {\n      throw new KettleException( \"Failed to fetch some row\", listener.throwedException );\n    }\n    this.logBasic( \"Process Ended.\" );\n    setOutputDone();\n    return false;\n  }\n\n  public boolean init( StepMetaInterface smi, StepDataInterface sdi ) {\n    meta = (PaloDimInputMeta) smi;\n    data = (PaloDimInputData) sdi;\n\n    if ( super.init( smi, sdi ) ) {\n      try {\n        this.logDebug( \"Meta Levels: \" + meta.getLevels().size() );\n        data.helper = new PaloHelper( meta.getDatabaseMeta(), getLogLevel() );\n        data.helper.connect();\n        return true;\n      } catch ( Exception e ) {\n        logError( \"An error occurred, processing will be stopped: \" + e.getMessage() );","sourceCodeStart":78,"sourceCodeEnd":114,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/diminput/PaloDimInput.java#L78-L114","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"// before: level field type Numeric, element value \"N/A\" -> conversion throws\n// after: set the level's FieldType to String in the Palo Dim Input step, or fix element data in Palo","handlingStrategy":"validation","validationCode":"// Before running, verify dimension element types match declared field types\nfor (PaloDimensionLevel lvl : meta.getLevels()) {\n  if (lvl.getFieldName() == null || lvl.getFieldType() == null) {\n    throw new IllegalStateException(\"Level \" + lvl.getName() + \" missing field mapping\");\n  }\n}","typeGuard":null,"tryCatchPattern":"try {\n  // run transformation/step\n} catch (KettleException e) {\n  log.error(\"Palo dim row fetch failed: \" + e.getCause(), e);\n  // enable step error handling to route bad rows instead of aborting\n}","preventionTips":["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"],"tags":["palo","row-processing","olap","data-conversion"],"backgroundTag":"data-conversion-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"}