{"record":{"id":"942bb11cf6b94e93","repo":"pentaho/pentaho-kettle","slug":"salesforceinputmeta-exception-errorsavingtorepository","errorCode":null,"errorMessage":"SalesforceInputMeta.Exception.ErrorSavingToRepository","messagePattern":"SalesforceInputMeta\\.Exception\\.ErrorSavingToRepository","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/salesforce/core/src/main/java/org/pentaho/di/trans/steps/salesforceinput/SalesforceInputMeta.java","lineNumber":749,"sourceCode":"      rep.saveStepAttribute( idTransformation, idStep, \"sql_field\", getSQLField() );\n      rep.saveStepAttribute( idTransformation, idStep, \"include_Timestamp\", includeTimestamp() );\n      rep.saveStepAttribute( idTransformation, idStep, \"timestamp_field\", getTimestampField() );\n      rep.saveStepAttribute( idTransformation, idStep, \"rownum_field\", getRowNumberField() );\n      rep.saveStepAttribute( idTransformation, idStep, \"deletion_date_field\", getDeletionDateField() );\n\n      rep.saveStepAttribute( idTransformation, idStep, \"limit\", getRowLimit() );\n      rep.saveStepAttribute( idTransformation, idStep, \"read_from\", getReadFrom() );\n      rep.saveStepAttribute( idTransformation, idStep, \"read_to\", getReadTo() );\n      rep.saveStepAttribute( idTransformation, idStep, \"records_filter\", SalesforceConnectionUtils\n        .getRecordsFilterCode( getRecordsFilter() ) );\n      rep.saveStepAttribute( idTransformation, idStep, \"queryAll\", isQueryAll() );\n\n      for ( int i = 0; i < inputFields.length; i++ ) {\n        SalesforceInputField field = inputFields[i];\n        field.saveRep( rep, metaStore, idTransformation, idStep, i );\n      }\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"SalesforceInputMeta.Exception.ErrorSavingToRepository\", \"\" + idStep ), e );\n    }\n  }\n\n  public void check( List<CheckResultInterface> remarks, TransMeta transMeta, StepMeta stepMeta,\n    RowMetaInterface prev, String[] input, String[] output, RowMetaInterface info, VariableSpace space,\n    Repository repository, IMetaStore metaStore ) {\n    super.check( remarks, transMeta, stepMeta, prev, input, output, info, space, repository, metaStore );\n    CheckResult cr;\n\n    // See if we get input...\n    if ( input != null && input.length > 0 ) {\n      cr =\n        new CheckResult( CheckResult.TYPE_RESULT_ERROR, BaseMessages.getString(\n          PKG, \"SalesforceInputMeta.CheckResult.NoInputExpected\" ), stepMeta );\n    } else {\n      cr =\n        new CheckResult( CheckResult.TYPE_RESULT_OK, BaseMessages.getString(","sourceCodeStart":731,"sourceCodeEnd":767,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/salesforce/core/src/main/java/org/pentaho/di/trans/steps/salesforceinput/SalesforceInputMeta.java#L731-L767","documentation":"Thrown from SalesforceInputMeta.saveRep() when persisting the step's settings (including each SalesforceInputField via field.saveRep()) to the repository fails. The whole save block is wrapped and rethrown as a KettleException 'ErrorSavingToRepository' including the step id.","triggerScenarios":"saveRep() fails while writing step attributes or field rows: repository connection lost, database constraint violation, insufficient write privileges, or a field value too long for the attribute column.","commonSituations":"Read-only repository credentials; repository DB disk full or schema out of date; saving a transformation with many fields triggering a database error mid-save; network blip between Spoon and the repository DB.","solutions":["Check the wrapped cause for the specific DB error (constraint, connection, permissions)","Confirm the repository user has write privileges on r_step_attribute","Test repository connectivity and retry the save","Upgrade the repository schema (Repository upgrade in Spoon) if tables are outdated"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"if (!rep.isConnected() || rep.getUserInfo().isReadonly()) {\n  throw new IllegalStateException(\"Repository user lacks write access\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  transMeta.saveRep(rep, metaStore, null, null);\n} catch (KettleException e) {\n  log.error(\"Repository save failed for step {}: {}\", e.getMessage(), e.getCause(), e);\n  throw e;\n}","preventionTips":["Ensure repository credentials have write privileges","Check DB disk space and schema version before large saves","Retry saves after transient network failures"],"tags":["kettle","repository","database","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"}