pentaho/pentaho-kettle · error · KettleException
PurRepository.fileUpdateException
PurRepository.fileUpdateException
Error message
PurRepository.fileUpdateException (localized, takes file name; error updating file)
What it means
When updating an existing file, a SOAPFaultException carrying UnifiedRepositoryUpdateFileException.PREFIX indicates the server rejected the file update. PurRepository rewraps it as a localized 'error updating file' KettleException including the file name. Common server-side causes: version conflicts, name collisions, or permission problems during update.
Solutions
- Check the server logs for the underlying UnifiedRepositoryUpdateFileException cause to see the real reason
- Retry after resolving the conflict (refresh/reload the latest file version)
- Ensure the user has write permission on the file and its folder
- If the update collides with an existing name, use Save As with a unique name
Defensive patterns
Strategy: try-catch
Try / catch
try {
repository.save(element, comment, null, true);
} catch (KettleException e) {
if (e.getMessage() != null && e.getMessage().contains("error updating")) {
log.error("Update failed for " + element.getName(), e);
// reload latest version and retry, or Save As
} else throw e;
} Prevention
- Reload the latest file version before updating to avoid conflicts
- Confirm write permissions on the file
- Serialize updates among collaborators rather than concurrent saves
When it happens
Trigger: pur.updateFile(...) throws SOAPFaultException whose message contains UnifiedRepositoryUpdateFileException.PREFIX — i.e. the backend UnifiedRepository explicitly signaled an update failure.
Common situations: Concurrent modification of the same file by two users (version conflict); renaming an update to a name already used in the folder; losing write permission on the target file; repository server versioning/jcr issues.
Related errors
- PurRepository.fileCreateException
- AbsSecurityProvider.ERROR_0002_UNABLE_TO_ACCESS_IS_ALLOWED
- AddSequenceMeta.Exception.UnableToReadStepInfo
- AddSequenceMeta.Exception.UnableToSaveStepInfo
- Error loading job details
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/7001fbe4e5574944.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/PurRepository.java:3480
}
} finally {
readWriteLock.readLock().unlock();
}
readWriteLock.writeLock().lock();
try {
// update title and description
file =
new RepositoryFile.Builder( file ).title( RepositoryFile.DEFAULT_LOCALE, element.getName() ).createdDate(
versionDate != null ? versionDate.getTime() : new Date() ).description( RepositoryFile.DEFAULT_LOCALE,
Const.NVL( element.getDescription(), "" ) ).build();
file =
pur.updateFile( file, new NodeRepositoryFileData( objectTransformer.elementToDataNode( element ) ),
versionComment );
} catch ( SOAPFaultException e ) {
if ( e.getMessage().contains( UnifiedRepositoryUpdateFileException.PREFIX ) ) {
throw new KettleException(
BaseMessages.getString( PKG, "PurRepository.fileUpdateException", file.getName() ) );
}
throw e;
} finally {
readWriteLock.writeLock().unlock();
}
if ( checkRename && isRenamed( element, file ) ) {
renameKettleEntity( element, null, element.getName() );
}
} else {
int dataSize = calculateDataSize( element );
readWriteLock.writeLock().lock();
try {
file =
new RepositoryFile.Builder( checkAndSanitize( element.getName()View on GitHub (pinned to f3058517a1)