pentaho/pentaho-kettle · error · KettleException
FieldSplitterMeta.Exception.UnalbeToSaveStepInfoToRepository
Error message
FieldSplitterMeta.Exception.UnalbeToSaveStepInfoToRepository
What it means
FieldSplitterMeta.saveRep writes the step's per-field attributes to the repository. Any exception from rep.saveStepAttribute is wrapped in this KettleException with id_step appended. (The message key contains a long-standing 'Unalbe' typo.)
Solutions
- Examine the cause exception for the repository/DB-level failure
- Confirm write permissions and available storage on the repository
- Retry the save after restoring connectivity
- Export the transformation as XML to preserve work while the repository is fixed
Defensive patterns
Strategy: try-catch
Validate before calling
if (!repository.isConnected()) { throw new IllegalStateException("Repository not connected"); }
if (fields == null || fields.length == 0) { throw new IllegalStateException("Nothing to save"); } Try / catch
try { meta.saveRep(rep, metaStore, idTransformation, idStep); }
catch (KettleException e) {
log.error("Save failed for id_step={}: {}", idStep, e.getCause(), e);
// retry after reconnect or fall back to XML export
} Prevention
- Check repository disk space and permissions before large saves
- Batch saves when connectivity is unstable
- Maintain XML exports as recovery artifacts
When it happens
Trigger: Saving a transformation with a FieldSplitter step when the Repository throws while writing delimiter, nullif, ifnull, or trimtype attributes for the field rows.
Common situations: Repository database read-only, quota exceeded, or connection dropped mid-save; insufficient permissions on the shared transformation folder.
Related errors
- FieldSplitterMeta.Exception.UnexpectedErrorInReadingStepInfo
- GroupByMeta.Exception.UnexpectedErrorInReadingStepInfoFromRepository
- GroupByMeta.Exception.UnableToSaveStepInfoToRepository
- ProcessFilesMeta.Exception.UnexpectedErrorReadingStepInfo
- SETVARIABLE0005
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/62b7f8e6dbc831ff.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/trans/steps/fieldsplitter/FieldSplitterMeta.java:548
for ( int i = 0; i < fieldName.length; i++ ) {
rep.saveStepAttribute( id_transformation, id_step, i, "field_name", fieldName[i] );
rep.saveStepAttribute( id_transformation, id_step, i, "field_id", fieldID[i] );
rep.saveStepAttribute( id_transformation, id_step, i, "field_idrem", fieldRemoveID[i] );
rep.saveStepAttribute( id_transformation, id_step, i, "field_type",
ValueMetaFactory.getValueMetaName( fieldType[i] ) );
rep.saveStepAttribute( id_transformation, id_step, i, "field_format", fieldFormat[i] );
rep.saveStepAttribute( id_transformation, id_step, i, "field_group", fieldGroup[i] );
rep.saveStepAttribute( id_transformation, id_step, i, "field_decimal", fieldDecimal[i] );
rep.saveStepAttribute( id_transformation, id_step, i, "field_currency", fieldCurrency[i] );
rep.saveStepAttribute( id_transformation, id_step, i, "field_length", fieldLength[i] );
rep.saveStepAttribute( id_transformation, id_step, i, "field_precision", fieldPrecision[i] );
rep.saveStepAttribute( id_transformation, id_step, i, "field_nullif", fieldNullIf[i] );
rep.saveStepAttribute( id_transformation, id_step, i, "field_ifnull", fieldIfNull[i] );
rep.saveStepAttribute( id_transformation, id_step, i, "field_trimtype", ValueMetaString
.getTrimTypeCode( fieldTrimType[i] ) );
}
} catch ( Exception e ) {
throw new KettleException( BaseMessages.getString(
PKG, "FieldSplitterMeta.Exception.UnalbeToSaveStepInfoToRepository" )
+ id_step, e );
}
}
public void check( List<CheckResultInterface> remarks, TransMeta transMeta, StepMeta stepMeta,
RowMetaInterface prev, String[] input, String[] output, RowMetaInterface info, VariableSpace space,
Repository repository, IMetaStore metaStore ) {
String error_message = "";
CheckResult cr;
// Look up fields in the input stream <prev>
if ( prev != null && prev.size() > 0 ) {
cr =
new CheckResult( CheckResult.TYPE_RESULT_OK, BaseMessages.getString(
PKG, "FieldSplitterMeta.CheckResult.StepReceivingFields", prev.size() + "" ), stepMeta );
remarks.add( cr );
View on GitHub (pinned to f3058517a1)