{"record":{"id":"c8601455c0e330e4","repo":"pentaho/pentaho-kettle","slug":"fastload-path-not-set","errorCode":null,"errorMessage":"Fastload path not set","messagePattern":"Fastload path not set","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/terafast-bulk-loader/impl/src/main/java/org/pentaho/di/trans/steps/terafastbulkloader/TeraFast.java","lineNumber":102,"sourceCode":"   * @param trans\n   *          the trans.\n   */\n  public TeraFast( final StepMeta stepMeta, final StepDataInterface stepDataInterface, final int copyNr,\n    final TransMeta transMeta, final Trans trans ) {\n    super( stepMeta, stepDataInterface, copyNr, transMeta, trans );\n  }\n\n  /**\n   * Create the command line for a fastload process depending on the meta information supplied.\n   *\n   * @return The string to execute.\n   *\n   * @throws KettleException\n   *           Upon any exception\n   */\n  public String createCommandLine() throws KettleException {\n    if ( StringUtils.isBlank( this.meta.getFastloadPath().getValue() ) ) {\n      throw new KettleException( \"Fastload path not set\" );\n    }\n    final StringBuilder builder = new StringBuilder();\n    try {\n      final FileObject fileObject =\n        KettleVFS.getInstance( getTransMeta().getBowl() )\n          .getFileObject( environmentSubstitute( this.meta.getFastloadPath().getValue() ) );\n      final String fastloadExec = KettleVFS.getFilename( fileObject );\n      builder.append( fastloadExec );\n    } catch ( Exception e ) {\n      throw new KettleException( \"Error retrieving fastload application string\", e );\n    }\n    // Add log error log, if set.\n    if ( StringUtils.isNotBlank( this.meta.getLogFile().getValue() ) ) {\n      try {\n        FileObject fileObject =\n          KettleVFS.getInstance( getTransMeta().getBowl() )\n            .getFileObject( environmentSubstitute( this.meta.getLogFile().getValue() ) );\n        builder.append( \" -e \" );","sourceCodeStart":84,"sourceCodeEnd":120,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/terafast-bulk-loader/impl/src/main/java/org/pentaho/di/trans/steps/terafastbulkloader/TeraFast.java#L84-L120","documentation":"TeraFast.createCommandLine builds the fastload command line but first checks that the Fastload executable path configured in the step metadata is non-blank. If meta.getFastloadPath().getValue() is empty or null, it throws 'Fastload path not set' because the tool cannot construct a valid fastload command without the executable location.","triggerScenarios":"The step's 'Fastload path' field is left empty in the dialog (or the underlying variable/parameter resolves to blank), and command() invokes createCommandLine() during step initialization.","commonSituations":"A developer forgot to fill in the path to the `fastload` binary when configuring the Terafast Bulk Loader; an environment variable used for the path is undefined at runtime; a transformation was migrated between machines where the path field was cleared.","solutions":["Open the Terafast Bulk Loader step dialog and set the Fastload executable path (e.g. /opt/teradata/client/15.10/bin/fastload).","If the path uses an environment variable, confirm it is defined and non-empty at runtime (kettle.properties or Set Variables step).","Verify the value actually reaches the metadata: check the saved ktr XML for the fastload path property."],"exampleFix":"// before (dialog config)\nFastload path: (empty)\n// after\nFastload path: /opt/teradata/client/16.20/bin/fastload","handlingStrategy":"validation","validationCode":"String fastloadPath = meta.getFastloadPath() == null ? null : meta.getFastloadPath().getValue();\nif (fastloadPath == null || fastloadPath.trim().isEmpty()) {\n  throw new IllegalStateException(\"Fastload path must be set before running the Terafast Bulk Loader step\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  trans.execute(null);\n} catch (KettleException e) {\n  if (\"Fastload path not set\".equals(e.getUnwrappedMessage())) {\n    logError(\"Configure the Fastload executable path in the Terafast Bulk Loader step\");\n  } else {\n    throw e;\n  }\n}","preventionTips":["Fill in the absolute path of the fastload binary in every environment where the transformation runs.","Use environment variables consistently and ensure they are defined on all execution hosts.","Add a pre-flight check (e.g. Files.exists on the resolved path) before deploying transformations that use this step.","Document required local tooling (Teradata client with fastload) for the operations team."],"tags":["teradata","fastload","missing-path","configuration"],"backgroundTag":"missing-required-config-field","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"}