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

  1. Examine the cause exception for the repository/DB-level failure
  2. Confirm write permissions and available storage on the repository
  3. Retry the save after restoring connectivity
  4. 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

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


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)