pentaho/pentaho-kettle · error · KettleException
RssInputMeta.Exception.ErrorSavingToRepository
Error message
RssInputMeta.Exception.ErrorSavingToRepository
What it means
RssInputMeta.saveRep wraps all rep.saveStepAttribute calls (step-level flags and per-field attributes) and rethrows any Exception as a KettleException with this message, including the id_step being saved. It means RSS Input step settings could not be persisted to the repository. The original cause is attached.
Solutions
- Inspect the wrapped cause exception to identify the actual repository write failure.
- Verify the repository connection is writable (not read-only) and the user has INSERT/UPDATE rights on step attributes.
- Test the repository connection in Spoon, reconnect, and retry the save.
- Check DB-side errors (disk space, constraints) on the repository database.
Example fix
// before
transMeta.save(rep, metaStore, "rss trans"); // may throw with this message
// after
try {
transMeta.save(rep, metaStore, "rss trans");
} catch (KettleException e) {
logError("Could not save RSS Input step to repository: " + e.getCause(), e);
} Defensive patterns
Strategy: try-catch
Validate before calling
if (rep != null && !rep.isReadOnly()) { /* proceed with save */ } Try / catch
try {
transMeta.save(rep, metaStore, name);
} catch (KettleException e) {
logError("saveRep failed: " + (e.getCause() != null ? e.getCause().getMessage() : e.getMessage()), e);
} Prevention
- Confirm write permissions on the repository before saving
- Monitor DB disk space and connectivity during saves
- Retry save after reconnecting if the connection dropped
When it happens
Trigger: Clicking OK/save on a transformation containing an RSS Input step when rep.saveStepAttribute throws — repository connection lost, read-only repository, DB constraint violation, or transaction failure while writing field_precision/field_trim_type/field_repeat rows.
Common situations: Repository DB disk full or permission denied on step_attributes table; saving to a repository opened read-only; network drop between Spoon and repository database mid-save; duplicate/oversized attribute rows.
Related errors
- AppendMeta.Exception.UnableToSaveStepInfo
- CombinationLookupMeta.Exception.UnableToSaveStepInfo
- DynamicSQLRowMeta.Exception.UnableToSaveStepInfo
- ExecProcessMeta.Exception.UnableToSaveStepInfo
- ExecSQLRowMeta.Exception.UnableToSaveStepInfo
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/0fee1599e10a0edf.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/rss/impl/src/main/java/org/pentaho/di/trans/steps/rssinput/RssInputMeta.java:460
for ( int i = 0; i < inputFields.length; i++ ) {
RssInputField field = inputFields[i];
rep.saveStepAttribute( id_transformation, id_step, i, "field_name", field.getName() );
rep.saveStepAttribute( id_transformation, id_step, i, "field_column", field.getColumnCode() );
rep.saveStepAttribute( id_transformation, id_step, i, "field_type", field.getTypeDesc() );
rep.saveStepAttribute( id_transformation, id_step, i, "field_format", field.getFormat() );
rep.saveStepAttribute( id_transformation, id_step, i, "field_currency", field.getCurrencySymbol() );
rep.saveStepAttribute( id_transformation, id_step, i, "field_decimal", field.getDecimalSymbol() );
rep.saveStepAttribute( id_transformation, id_step, i, "field_group", field.getGroupSymbol() );
rep.saveStepAttribute( id_transformation, id_step, i, "field_length", field.getLength() );
rep.saveStepAttribute( id_transformation, id_step, i, "field_precision", field.getPrecision() );
rep.saveStepAttribute( id_transformation, id_step, i, "field_trim_type", field.getTrimTypeCode() );
rep.saveStepAttribute( id_transformation, id_step, i, "field_repeat", field.isRepeated() );
}
} catch ( Exception e ) {
throw new KettleException( BaseMessages.getString( PKG, "RssInputMeta.Exception.ErrorSavingToRepository", ""
+ id_step ), e );
}
}
public StepDataInterface getStepData() {
return new RssInputData();
}
public boolean supportsErrorHandling() {
return true;
}
public void check( List<CheckResultInterface> remarks, TransMeta transMeta, StepMeta stepMeta,
RowMetaInterface prev, String[] input, String[] output, RowMetaInterface info, VariableSpace space,
Repository repository, IMetaStore metaStore ) {
CheckResult cr;
if ( urlInField ) {View on GitHub (pinned to f3058517a1)