pentaho/pentaho-kettle · error · KettleException
Unable to save step information to the repository for…
Error message
Unable to save step information to the repository for idStep=
What it means
KettleException thrown by PaloDimInputMeta.saveRep when persisting the step's level definitions to the Pentaho Repository fails. All saveStepAttribute writes (connection, dimension, per-level levelname/levelnumber/fieldname/fieldtype) happen in one try block; any repository write error is wrapped with the idStep in the message.
Solutions
- Read the cause in the log; restore repository connectivity/permissions and re-save.
- Grant the repository user INSERT/UPDATE rights on R_STEP_ATTRIBUTE.
- Retry the save after resolving lock/deadlock conflicts from concurrent editing.
- Save locally as .ktr as a workaround, then import to the repository once it is healthy.
Defensive patterns
Strategy: try-catch
Validate before calling
// Ensure repository is writable before save
if (rep.getConnection().isReadOnly()) {
throw new IllegalStateException("Repository connection is read-only");
} Try / catch
try {
transMeta.saveRep(rep, metaStore, idTransformation);
} catch (KettleException e) {
log.error("diminput save failed: " + e.getCause(), e);
transMeta.saveXml(localBackup, null); // fallback local save
} Prevention
- Grant write rights on R_STEP_ATTRIBUTE to the repository user
- Watch repository DB space and read-only mode
- Serialize saves of shared transformations
- Keep a local .ktr copy as fallback
When it happens
Trigger: Saving the transformation to the repository while the repository DB is unreachable, the user lacks write permission, or an individual saveStepAttribute call for a level attribute throws.
Common situations: Repository database read-only or full; network interruption during save; insufficient DB privileges on R_STEP_ATTRIBUTE; concurrent edits causing lock conflicts.
Related errors
- Unable to save step information to the repository for…
- SyslogMessageMeta.Exception.UnableToSaveStepInfo
- unable to save jobentry of type 'file exists' to the…
- Unable to save step information to the repository, id_step=
- Unexpected error reading step information from the…
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/b6666558943873ac.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/diminput/PaloDimInputMeta.java:205
}
}
public void saveRep( Repository rep, IMetaStore metaStore, ObjectId idTransformation, ObjectId idStep )
throws KettleException {
try {
rep.saveDatabaseMetaStepAttribute( idTransformation, idStep, "connection", databaseMeta );
rep.saveStepAttribute( idTransformation, idStep, "dimension", this.dimension );
rep.saveStepAttribute( idTransformation, idStep, "baseElementsOnly", this.baseElementsOnly );
for ( int i = 0; i < levels.size(); i++ ) {
rep.saveStepAttribute( idTransformation, idStep, i, "levelname", this.levels.get( i ).getLevelName() );
rep.saveStepAttribute( idTransformation, idStep, i, "levelnumber", this.levels.get( i ).getLevelNumber() );
rep.saveStepAttribute( idTransformation, idStep, i, "fieldname", this.levels.get( i ).getFieldName() );
rep.saveStepAttribute( idTransformation, idStep, i, "fieldtype", this.levels.get( i ).getFieldType() );
}
} catch ( Exception e ) {
throw new KettleException( "Unable to save step information to the repository for idStep=" + idStep, e );
}
}
public void check( final List<CheckResultInterface> remarks, final TransMeta transMeta, final StepMeta stepMeta,
final RowMetaInterface prev, final String[] input, final String[] output, final RowMetaInterface info,
VariableSpace space, Repository repository, IMetaStore metaStore ) {
CheckResult cr;
if ( databaseMeta != null ) {
cr = new CheckResult( CheckResultInterface.TYPE_RESULT_OK, "Connection exists", stepMeta );
remarks.add( cr );
final PaloHelper helper = new PaloHelper( databaseMeta, DefaultLogLevel.getLogLevel() );
try {
helper.connect();
cr = new CheckResult( CheckResultInterface.TYPE_RESULT_OK, "Connection to database OK", stepMeta );
remarks.add( cr );
View on GitHub (pinned to f3058517a1)