{"record":{"id":"da45ebff1c7d9635","repo":"pentaho/pentaho-kettle","slug":"selectvaluesmeta-exception-unabletosavestepinfotorepository","errorCode":null,"errorMessage":"SelectValuesMeta.Exception.UnableToSaveStepInfoToRepository","messagePattern":"SelectValuesMeta\\.Exception\\.UnableToSaveStepInfoToRepository","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/trans/steps/selectvalues/SelectValuesMeta.java","lineNumber":624,"sourceCode":"            .getConversionMask() );\n        rep.saveStepAttribute( id_transformation, id_step, i, getRepCode( \"META_DATE_FORMAT_LENIENT\" ), Boolean\n            .toString( meta[i].isDateFormatLenient() ) );\n        rep.saveStepAttribute( id_transformation, id_step, i, getRepCode( \"META_DATE_FORMAT_LOCALE\" ), meta[i]\n            .getDateFormatLocale() == null ? null : meta[i].getDateFormatLocale().toString() );\n        rep.saveStepAttribute( id_transformation, id_step, i, getRepCode( \"META_DATE_FORMAT_TIMEZONE\" ), meta[i]\n            .getDateFormatTimeZone() == null ? null : meta[i].getDateFormatTimeZone().toString() );\n        rep.saveStepAttribute( id_transformation, id_step, i, getRepCode( \"META_LENIENT_STRING_TO_NUMBER\" ), Boolean\n            .toString( meta[i].isLenientStringToNumber() ) );\n        rep.saveStepAttribute( id_transformation, id_step, i, getRepCode( \"META_DECIMAL\" ), meta[i]\n            .getDecimalSymbol() );\n        rep.saveStepAttribute( id_transformation, id_step, i, getRepCode( \"META_GROUPING\" ), meta[i]\n            .getGroupingSymbol() );\n        rep.saveStepAttribute( id_transformation, id_step, i, getRepCode( \"META_CURRENCY\" ), meta[i]\n            .getCurrencySymbol() );\n        rep.saveStepAttribute( id_transformation, id_step, i, getRepCode( \"META_ENCODING\" ), meta[i].getEncoding() );\n      }\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString( PKG,\n          \"SelectValuesMeta.Exception.UnableToSaveStepInfoToRepository\" ) + id_step, e );\n    }\n\n  }\n\n  @Override\n  public void check( List<CheckResultInterface> remarks, TransMeta transMeta, StepMeta stepMeta, RowMetaInterface prev,\n      String[] input, String[] output, RowMetaInterface info, VariableSpace space, Repository repository,\n      IMetaStore metaStore ) {\n    CheckResult cr;\n\n    if ( prev != null && prev.size() > 0 ) {\n      cr =\n          new CheckResult( CheckResultInterface.TYPE_RESULT_OK, BaseMessages.getString( PKG,\n              \"SelectValuesMeta.CheckResult.StepReceivingFields\", prev.size() + \"\" ), stepMeta );\n      remarks.add( cr );\n\n      /*","sourceCodeStart":606,"sourceCodeEnd":642,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/trans/steps/selectvalues/SelectValuesMeta.java#L606-L642","documentation":"saveRep() wraps any exception while persisting SelectValues step attributes into a repository in a KettleException with key 'SelectValuesMeta.Exception.UnableToSaveStepInfoToRepository' plus the id_step. It means step configuration could not be written to the repository.","triggerScenarios":"Calling saveRep() when one of many rep.saveStepAttribute calls fails — read-only repository, lost DB connection, constraint violation, or attribute value too large for the column.","commonSituations":"Saving a transformation as a user without write permission; repository database disk full or connection dropped mid-save; migrating transformations between repositories with different schemas.","solutions":["Verify the repository user has write privileges","Check repository DB connectivity and free space, then retry the save","Reconnect/re-login to the repository in Spoon and save again","Inspect the cause for constraint errors and shorten/fix offending attribute values"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// before save\nif (!repository.getSecurityProvider() != null /* or equivalent write check */) { /* verify user can write */ }\nif (id_step == null) throw new IllegalStateException(\"id_step is null; step not registered\");","typeGuard":null,"tryCatchPattern":"try { meta.saveRep(rep, metaStore, transId, stepId); } catch (KettleException e) { logError(\"Repository save failed for id_step=\" + stepId + \": \" + e.getCause(), e); throw e; }","preventionTips":["Confirm repository user has write privileges before saving","Avoid saving over unstable DB connections","Export to XML as a fallback before risky repository operations","Monitor repository disk space and constraint errors"],"tags":["kettle","repository","metadata-save"],"backgroundTag":"database-write-failed","analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}