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 id_step=
What it means
MetaInjectMeta.saveRep() writes each target/source mapping entry as numbered step attributes. Any exception during these saveStepAttribute calls is wrapped in a KettleException including the failing id_step. The transformation cannot be persisted to the repository.
Solutions
- Check the wrapped cause for the underlying repository/SQL error.
- Verify the repository database is writable and has free space.
- Reduce the number of injection mappings if attribute rows hit a storage limit.
- Reconnect to the repository and retry the save.
Defensive patterns
Strategy: try-catch
Validate before calling
// Verify repository is writable before saving
if (rep.isReadOnly()) throw new IllegalStateException("Repository is read-only"); Try / catch
try {
meta.saveRep(rep, metaStore, id_transformation, id_step);
} catch (KettleException e) {
logError("Save failed for id_step=" + id_step + ": " + e.getCause(), e);
// retry after reconnecting to the repository
} Prevention
- Check repository disk space and write permissions
- Reconnect/retry on transient DB failures
- Avoid very large mapping tables in a single step
When it happens
Trigger: saveRep(rep, metaStore, id_transformation, id_step) failing on repository I/O errors, locked/readonly repository connections, or oversized mapping tables.
Common situations: Repository database out of space or read-only; connection lost mid-save; saving a transformation with hundreds of injection mappings exceeding DB limits.
Related errors
- Unexpected error reading step information from the…
- AddSequenceMeta.Exception.UnableToSaveStepInfo
- ColumnExistsMeta.Exception.UnableToSaveStepInfo
- ColumnExistsMeta.Exception.UnexpectedErrorReadingStepInfo
- CreditCardValidatorMeta.Exception.UnableToSaveStepInfo
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/b690d9997e01dffe.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/meta-inject/impl/src/main/java/org/pentaho/di/trans/steps/metainject/MetaInjectMeta.java:366
rep.saveStepAttribute( id_transformation, id_step, i, SOURCE_OUTPUT_FIELD_PRECISION, aField.getPrecision() );
}
rep.saveStepAttribute( id_transformation, id_step, TARGET_FILE, targetFile );
rep.saveStepAttribute( id_transformation, id_step, NO_EXECUTION, noExecution );
List<TargetStepAttribute> keySet = new ArrayList<TargetStepAttribute>( targetSourceMapping.keySet() );
for ( int i = 0; i < keySet.size(); i++ ) {
TargetStepAttribute target = keySet.get( i );
SourceStepField source = targetSourceMapping.get( target );
rep.saveStepAttribute( id_transformation, id_step, i, MAPPING_TARGET_STEP_NAME, target.getStepname() );
rep.saveStepAttribute( id_transformation, id_step, i, MAPPING_TARGET_ATTRIBUTE_KEY, target.getAttributeKey() );
rep.saveStepAttribute( id_transformation, id_step, i, MAPPING_TARGET_DETAIL, target.isDetail() );
rep.saveStepAttribute( id_transformation, id_step, i, MAPPING_SOURCE_STEP, source.getStepname() );
rep.saveStepAttribute( id_transformation, id_step, i, MAPPING_SOURCE_FIELD, source.getField() );
}
} catch ( Exception e ) {
throw new KettleException( "Unable to save step information to the repository for id_step=" + id_step, e );
}
}
@Override
public void getFields( Bowl bowl, RowMetaInterface rowMeta, String origin, RowMetaInterface[] info, StepMeta nextStep,
VariableSpace space, Repository repository, IMetaStore metaStore ) throws KettleStepException {
rowMeta.clear(); // No defined output is expected from this step.
if ( !Utils.isEmpty( sourceStepName ) ) {
for ( MetaInjectOutputField field : sourceOutputFields ) {
try {
rowMeta.addValueMeta( field.createValueMeta() );
} catch ( KettlePluginException e ) {
throw new KettleStepException( "Error creating value meta for output field '" + field.getName() + "'", e );
}
}
}
}View on GitHub (pinned to f3058517a1)