{"record":{"id":"45d00dafa2f27edd","repo":"pentaho/pentaho-kettle","slug":"searchfieldsprogressdialog-log-unabletogetfields","errorCode":"SearchFieldsProgressDialog.Log.UnableToGetFields","errorMessage":"SearchFieldsProgressDialog.Log.UnableToGetFields","messagePattern":"SearchFieldsProgressDialog\\.Log\\.UnableToGetFields","errorType":"exception","errorClass":"InvocationTargetException","httpStatus":null,"severity":"error","filePath":"ui/src/main/java/org/pentaho/di/ui/spoon/dialog/SearchFieldsProgressDialog.java","lineNumber":69,"sourceCode":"\n    try {\n      if ( before ) {\n        monitor.beginTask( BaseMessages.getString(\n          PKG, \"SearchFieldsProgressDialog.Dialog.SearchInputFields.Message\" ), size ); // Searching\n                                                                                        // for\n                                                                                        // input\n                                                                                        // fields...\n        fields = transMeta.getPrevStepFields( stepInfo, new ProgressMonitorAdapter( monitor ) );\n      } else {\n        monitor.beginTask( BaseMessages.getString(\n          PKG, \"SearchFieldsProgressDialog.Dialog.SearchOutputFields.Message\" ), size ); // Searching\n                                                                                         // for\n                                                                                         // output\n                                                                                         // fields...\n        fields = transMeta.getStepFields( stepInfo, new ProgressMonitorAdapter( monitor ) );\n      }\n    } catch ( KettleStepException kse ) {\n      throw new InvocationTargetException( kse, BaseMessages.getString(\n        PKG, \"SearchFieldsProgressDialog.Log.UnableToGetFields\", stepInfo.toString(), kse.getMessage() ) );\n    }\n\n    monitor.done();\n  }\n\n  /**\n   * @return Returns the before.\n   */\n  public boolean isBefore() {\n    return before;\n  }\n\n  /**\n   * @param before\n   *          The before to set.\n   */\n  public void setBefore( boolean before ) {","sourceCodeStart":51,"sourceCodeEnd":87,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/ui/src/main/java/org/pentaho/di/ui/spoon/dialog/SearchFieldsProgressDialog.java#L51-L87","documentation":"SearchFieldsProgressDialog.run wraps KettleStepException from transMeta.getStepFields(...) in an InvocationTargetException with the localized message 'SearchFieldsProgressDialog.Log.UnableToGetFields', including the step name and the underlying exception message. It means the fields flowing out of a step could not be computed while building the fields search results.","triggerScenarios":"Running the 'Search fields' dialog when getStepFields(stepInfo, monitor) throws KettleStepException — typically a step in the path has no defined output row metadata, an upstream step is disconnected/unavailable, or a database step cannot resolve its table/columns.","commonSituations":"A hop is broken or a step is not initialized so its output fields are unknown; a table input step references a table that no longer exists; custom step plugins fail to implement getFields correctly.","solutions":["Read the embedded kse.getMessage() to identify which step failed field resolution.","Open the failing step's dialog and re-run 'Get Fields' so its output row metadata is rebuilt.","Fix the transformation topology: reconnect broken hops or remove orphaned steps.","For database steps, verify the connection and that referenced tables/columns still exist."],"exampleFix":"// before: run search on a transformation with a broken step\nfields = transMeta.getStepFields( stepInfo, new ProgressMonitorAdapter( monitor ) );\n// after: validate the step's metadata first\nif ( stepInfo.getStepMetaInterface().getStepMeta() != null ) {\n  fields = transMeta.getStepFields( stepInfo, new ProgressMonitorAdapter( monitor ) );\n}","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  fields = transMeta.getStepFields( stepInfo, monitor );\n} catch ( KettleStepException kse ) {\n  log.logError( \"Cannot resolve fields for step \" + stepInfo.getName() + \": \" + kse.getMessage(), kse );\n}","preventionTips":["Keep transformation hops connected and remove orphaned steps before searching fields.","Refresh each step's output field metadata after editing step configuration.","Validate database steps' connections and referenced tables before field searches."],"tags":["fields","step-metadata","pentaho-kettle","row-resolution"],"backgroundTag":"field-resolution-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"}