{"record":{"id":"c6107787214703d0","repo":"pentaho/pentaho-kettle","slug":"following-required-files-are-not-accessible-getfilenames","errorCode":null,"errorMessage":"Following required files are not accessible: ","messagePattern":"Following required files are not accessible: ","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/trans/steps/getfilenames/GetFileNames.java","lineNumber":289,"sourceCode":"\n  private void handleMissingFiles() throws KettleException {\n    if ( meta.isdoNotFailIfNoFile() && data.files.nrOfFiles() == 0 ) {\n      logBasic( BaseMessages.getString( PKG, \"GetFileNames.Log.NoFile\" ) );\n      return;\n    }\n    List<FileObject> nonExistantFiles = data.files.getNonExistantFiles();\n\n    if ( nonExistantFiles.size() != 0 ) {\n      String message = FileInputList.getRequiredFilesDescription( nonExistantFiles );\n      logBasic( \"ERROR: Missing \" + message );\n      throw new KettleException( \"Following required files are missing: \" + message );\n    }\n\n    List<FileObject> nonAccessibleFiles = data.files.getNonAccessibleFiles();\n    if ( nonAccessibleFiles.size() != 0 ) {\n      String message = FileInputList.getRequiredFilesDescription( nonAccessibleFiles );\n      logBasic( \"WARNING: Not accessible \" + message );\n      throw new KettleException( \"Following required files are not accessible: \" + message );\n    }\n  }\n\n  public boolean init( StepMetaInterface smi, StepDataInterface sdi ) {\n    meta = (GetFileNamesMeta) smi;\n    data = (GetFileNamesData) sdi;\n\n\n    if ( super.init( smi, sdi ) ) {\n      //Set Embedded NamedCluter MetatStore Provider Key so that it can be passed to VFS\n      if ( getTransMeta().getNamedClusterEmbedManager() != null ) {\n        getTransMeta().getNamedClusterEmbedManager()\n          .passEmbeddedMetastoreKey( this, getTransMeta().getEmbeddedMetastoreProviderKey() );\n      }\n\n      try {\n        // Create the output row meta-data\n        data.outputRowMeta = new RowMeta();","sourceCodeStart":271,"sourceCodeEnd":307,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/trans/steps/getfilenames/GetFileNames.java#L271-L307","documentation":"During init (handleMissingFiles), if any configured required files exist but cannot be accessed (e.g., no read permission), the step throws a KettleException listing them. The step will not start with inaccessible required inputs.","triggerScenarios":"FileInputList.getNonAccessibleFiles() is non-empty at init: files exist but the process lacks read/execute permission or the mount is unavailable.","commonSituations":"Files owned by another user without read permission; unreadable directories in the path; network shares not mounted; service account lacks access.","solutions":["Grant read permission on the listed files/directories to the Pentaho/Kettle process user.","Fix or remount the network share referenced by the paths.","Mark files as not required ('N') if they are optional.","Run the transformation under a user with proper access."],"exampleFix":"// shell\n// before: -rw------- file.txt\n// after\nchmod 644 file.txt  # or chown pentaho file.txt","handlingStrategy":"validation","validationCode":"for (String path : configuredPaths) {\n  File f = new File(path);\n  if (f.exists() && !f.canRead()) {\n    throw new IllegalStateException(\"Not accessible: \" + path);\n  }\n}","typeGuard":null,"tryCatchPattern":"try { trans.execute(); } catch (KettleException e) { if (e.getMessage().startsWith(\"Following required files are not accessible\")) { /* fix permissions */ } throw e; }","preventionTips":["Run Pentaho under a user with read access to all input paths","Check mounts/shares before scheduling","Verify permissions after deployments"],"tags":["pentaho","kettle","permissions","file-access"],"backgroundTag":"permission-denied","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"}