pentaho/pentaho-kettle · error · KettleException
ExcelInput.Exception.RequiredFilesNotAccessible
ExcelInput.Exception.RequiredFilesNotAccessible
Error message
ExcelInput.Exception.RequiredFilesNotAccessible
What it means
handleMissingFiles also checks files that exist but cannot be opened (non-accessible). When error ignoring is off, the step throws a KettleException summarizing the inaccessible required files and aborts.
Solutions
- Check and fix OS read permissions on the listed files
- Close the application holding the file lock (e.g. Excel) or copy the file elsewhere first
- Verify the network drive/mount is available on the execution node
- Enable 'Ignore errors' with a non-accessible-file error handler if access failures are tolerable
Defensive patterns
Strategy: try-catch
Validate before calling
FileObject f = KettleVFS.getInstance(bowl).getFileObject(path, transMeta); if (f.exists() && !f.isReadable()) throw new AccessDeniedException(path);
Try / catch
try {
transformation.execute();
} catch (KettleException e) {
if (e.getMessage().contains("RequiredFilesNotAccessible")) {
// check locks/permissions then retry once
} else { throw e; }
} Prevention
- Ensure the service account can read all input paths
- Close Excel sessions holding locks on source files
- Confirm network mounts are up before scheduled runs
When it happens
Trigger: data.files.getNonAccessibleFiles() is non-empty (permission or lock problems) and meta.isErrorIgnored() is false.
Common situations: Files locked by Excel or another process; OS permission denies read; file on an unmounted network share; running the transformation as a service user lacking file permissions.
Understand the failure class
Background: Permission denied / not authorized / 403 Forbidden: access-control rejections when the caller lacks the required role, grant, or ownership — this error's family across 18 libraries.
Related errors
- AbsSecurityManager.ERROR_0005_INSUFFICIENT_PRIVELEGES
- AbsSecurityProvider.ERROR_0002_UNABLE_TO_ACCESS_IS_ALLOWED
- AbsSecurityProvider.ERROR_0003_UNABLE_TO_ACCESS_GET_ALLOWED_ACTIONS
- AccessInput.Log.RequiredNotAccessibleFilesMissing
- Cannot open control file
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/3fe530625dc4aa9f.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/excel/core/src/main/java/org/pentaho/di/trans/steps/excelinput/ExcelInput.java:497
throw new KettleException( BaseMessages.getString(
PKG, "ExcelInput.Exception.MissingRequiredFiles", message ) );
}
}
List<FileObject> nonAccessibleFiles = data.files.getNonAccessibleFiles();
if ( !nonAccessibleFiles.isEmpty() ) {
String message = FileInputList.getRequiredFilesDescription( nonAccessibleFiles );
if ( log.isBasic() ) {
logBasic( BaseMessages.getString( PKG, "ExcelInput.Log.RequiredFilesTitle" ), BaseMessages.getString(
PKG, "ExcelInput.Log.RequiredFilesMsgNotAccessible", message ) );
}
if ( meta.isErrorIgnored() ) {
for ( FileObject fileObject : nonAccessibleFiles ) {
data.errorHandler.handleNonAccessibleFile( fileObject );
}
} else {
throw new KettleException( BaseMessages.getString(
PKG, "ExcelInput.Exception.RequiredFilesNotAccessible", message ) );
}
}
}
public Object[] getRowFromWorkbooks() {
// This procedure outputs a single Excel data row on the destination
// rowsets...
Object[] retval = null;
try {
// First, see if a file has been opened?
if ( data.workbook == null ) {
// Open a new openFile..
data.file = data.files.getFile( data.filenr );
data.filename = KettleVFS.getFilename( data.file );
// Add additional fields?View on GitHub (pinned to f3058517a1)