pentaho/pentaho-kettle · error · KettleException

CubeOutputMeta.Exception.UnableToSaveStepInfo

CubeOutputMeta.Exception.UnableToSaveStepInfo

Error message

CubeOutputMeta.Exception.UnableToSaveStepInfo

What it means

CubeOutputMeta.saveRep persists the Cube Output step's settings (file_name, add_to_result_filenames, do_not_open_newfile_init) via rep.saveStepAttribute. Any KettleException from the repository is wrapped with 'CubeOutputMeta.Exception.UnableToSaveStepInfo' plus the step id. It means the Cube Output step's metadata could not be written to the repository.

Solutions

  1. Verify repository connectivity and retry the save.
  2. Check the wrapped cause exception for the exact repository/SQL error.
  3. Ensure the repository user has write permission on the transformation and step attribute tables.
  4. Save locally as XML to preserve work, then resolve repository issues before re-saving.

Example fix

// before: single blind save
transMeta.saveRep(rep, metaStore, transId, null);
// after: retry with reconnect on failure
try {
  transMeta.saveRep(rep, metaStore, transId, null);
} catch (KettleException e) {
  if (!rep.isConnected()) { rep.connect(); }
  transMeta.saveRep(rep, metaStore, transId, null);
}
Defensive patterns

Strategy: try-catch

Validate before calling

if (rep == null || !rep.isConnected()) { throw new KettleException("Repository not connected; cannot save Cube Output step"); }

Try / catch

try { cubeOutputMeta.saveRep(rep, metaStore, transId, stepId); } catch (KettleException e) { logError("Save failed: " + e.getCause().getMessage(), e); // fallback: save as XML
transMeta.setFilename(localBackupPath); transMeta.saveXml(); }

Prevention

When it happens

Trigger: saveRep while rep.saveStepAttribute throws: repository connection lost, insufficient write permission, DB constraint violation, or storage failure for the step attribute rows.

Common situations: Saving a ktr to a database repository during a network outage; read-only repository credentials; repository table full or constraint violation after a PDI version upgrade; concurrent edits by another user locking rows.

Related errors


AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13). Data as JSON: /api/errors/4b39ac7ecd76a674. Report an issue: GitHub.

Appendix: source

Thrown at plugins/core/impl/src/main/java/org/pentaho/di/trans/steps/cubeoutput/CubeOutputMeta.java:176

    try {
      filename = rep.getStepAttributeString( id_step, "file_name" );
      addToResultFilenames = rep.getStepAttributeBoolean( id_step, "add_to_result_filenames" );
      doNotOpenNewFileInit = rep.getStepAttributeBoolean( id_step, "do_not_open_newfile_init" );

    } catch ( Exception e ) {
      throw new KettleException( BaseMessages.getString(
        PKG, "CubeOutputMeta.Exception.UnexpectedErrorInReadingStepInfo" ), e );
    }
  }

  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException {
    try {
      rep.saveStepAttribute( id_transformation, id_step, "file_name", filename );
      rep.saveStepAttribute( id_transformation, id_step, "add_to_result_filenames", addToResultFilenames );
      rep.saveStepAttribute( id_transformation, id_step, "do_not_open_newfile_init", doNotOpenNewFileInit );

    } catch ( Exception e ) {
      throw new KettleException( BaseMessages.getString( PKG, "CubeOutputMeta.Exception.UnableToSaveStepInfo" )
        + 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 ) {
    CheckResult cr;

    // Check output fields
    if ( prev != null && prev.size() > 0 ) {
      cr =
        new CheckResult( CheckResult.TYPE_RESULT_OK, BaseMessages.getString(
          PKG, "CubeOutputMeta.CheckResult.ReceivingFields", String.valueOf( prev.size() ) ), stepMeta );
      remarks.add( cr );
    }

    cr =

View on GitHub (pinned to f3058517a1)