pentaho/pentaho-kettle · error · KettleException

JobFTPS.Error.CreationFolder

JobFTPS.Error.CreationFolder

Error message

JobFTPS.Error.CreationFolder

What it means

KettleException thrown by FTPSConnection.createDirectory when the underlying FTPS client's makeDirectory call fails for the given remote path. It wraps any exception (IO, SSL, server reply) raised while creating a folder on the FTPS server.

Solutions

  1. Verify the parent directory of the target path already exists on the FTPS server (create parents first)
  2. Check the FTPS user's write/create permissions on the server
  3. Test the same MKD command manually with an FTPS client (e.g. lftp, FileZilla) to see the raw server reply
  4. Ensure the connection is still alive (passive mode / firewall timeouts) before calling createDirectory

Example fix

// before
connection.createDirectory("/data/out/daily/");
// after
connection.createDirectory("/data/out");      // ensure parent exists
connection.createDirectory("/data/out/daily");
Defensive patterns

Strategy: try-catch

Validate before calling

// pre-check parent dir exists via file listing
List<FTPFile> files = connection.getFileList("/data/out");
if (files == null) throw new IllegalStateException("parent /data/out not listable");

Try / catch

try {
  ftpsConnection.createDirectory(dir);
} catch (KettleException e) {
  logError("Failed to create remote dir " + dir + ": " + e.getCause(), e);
  throw e;
}

Prevention

When it happens

Trigger: calling createDirectory(directory) when the remote path is invalid, the parent folder does not exist, the server refuses MKD, or the control connection/SSL session has dropped

Common situations: job entry configured with a non-existent parent path for 'move to folder'; FTPS server denies directory creation permissions; passive-mode firewall issues causing connection drop before MKD

Understand the failure class

Background: mkdir permission denied (EACCES): failed to create directory errors explained — this error's family across 32 libraries.

Related errors


AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13). Data as JSON: /api/errors/9360a9e5a6e39418. Report an issue: GitHub.

Appendix: source

Thrown at plugins/ftps/impl/src/main/java/org/pentaho/di/job/entries/ftpsget/FTPSConnection.java:410

      this.connection.changeDirectory( directory );
    } catch ( Exception f ) {
      throw new KettleException( BaseMessages.getString( PKG, "JobFTPS.Error.ChangingFolder", directory ), f );
    }
  }

  /**
   *
   * this method is used to create a directory in remote host
   *
   * @param directory
   *          directory name on remote host
   * @throws KettleException
   */
  public void createDirectory( String directory ) throws KettleException {
    try {
      this.connection.makeDirectory( directory );
    } catch ( Exception f ) {
      throw new KettleException( BaseMessages.getString( PKG, "JobFTPS.Error.CreationFolder", directory ), f );
    }
  }

  public List<FTPFile> getFileList( String folder ) throws KettleException {
    try {
      if ( connection != null ) {
        List<FTPFile> response = connection.getDirectoryListing( folder );
        return response;
      } else {
        return null;
      }
    } catch ( Exception e ) {
      throw new KettleException( e );
    }
  }

  /**
   * this method is used to download a file from a remote host

View on GitHub (pinned to f3058517a1)