{"record":{"id":"c10799e037060d35","repo":"pentaho/pentaho-kettle","slug":"unknown-value-v-for-enum-enumclass-c10799","errorCode":null,"errorMessage":"Unknown value '{v}' for enum {enumClass}","messagePattern":"Unknown value '(.+?)' for enum (.+?)","errorType":"validation","errorClass":"KettleValueException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemDataMetaInjectionTypeConverter.java","lineNumber":28,"sourceCode":" * Change Date: 2030-06-15\n ******************************************************************************/\n\n\n\npackage org.pentaho.di.trans.steps.systemdata;\n\nimport org.pentaho.di.core.exception.KettleValueException;\nimport org.pentaho.di.core.injection.InjectionTypeConverter;\n\npublic class SystemDataMetaInjectionTypeConverter extends InjectionTypeConverter {\n\n  @Override\n  public Enum<?> string2enum( Class<?> enumClass, String v ) throws KettleValueException {\n    // For SystemDataMeta, enum should be a SystemDataTypes\n    SystemDataTypes type = SystemDataTypes.getTypeFromString( v );\n    if ( !SystemDataTypes.TYPE_SYSTEM_INFO_NONE.toString().equals( v ) && type == SystemDataTypes.TYPE_SYSTEM_INFO_NONE ) {\n      // Throw exception to let user know entered string was not valid SystemDataType\n      throw new KettleValueException( \"Unknown value '\" + v + \"' for enum \" + enumClass );\n    } else {\n      return type;\n    }\n  }\n}\n","sourceCodeStart":10,"sourceCodeEnd":34,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemDataMetaInjectionTypeConverter.java#L10-L34","documentation":"The metadata-injection type converter for SystemDataMeta converts an injected string to a SystemDataTypes enum. If the string is not a known type (getTypeFromString falls back to TYPE_SYSTEM_INFO_NONE while the input isn't literally the NONE code), it throws KettleValueException naming the bad value and the target enum class.","triggerScenarios":"Metadata injection (e.g. from an Excel/CSV input mapping into a System Data step) supplies a 'field_type' value that is not a valid SystemDataTypes name/code.","commonSituations":"Typo in the mapping source column, value read from a spreadsheet with wrong casing or trailing whitespace, or a renamed SystemDataTypes code between Pentaho versions.","solutions":["Correct the injected value to a valid SystemDataTypes code (e.g. 'batch', 'current user', matching getTypeFromString)","Trim/clean the source column feeding the mapping to remove whitespace or BOM characters","Pre-validate the mapping source values against SystemDataTypes.getTypeFromString before running","If the code changed across versions, update the mapping to the current enum code"],"exampleFix":"// before (injected value)\n\"filed name\" -> field_type: \"Server Hostmame\"   // unknown -> exception\n// after\n\"Server hostname\" // matches SystemDataTypes code accepted by getTypeFromString","handlingStrategy":"validation","validationCode":"// validate every injected field_type before running the mapping\nfor ( String v : injectedTypes ) {\n  if ( SystemDataTypes.getTypeFromString( v ) == null\n      && !SystemDataTypes.TYPE_SYSTEM_INFO_NONE.toString().equals( v ) ) {\n    throw new IllegalArgumentException( \"Invalid SystemDataTypes value: \" + v );\n  }\n}","typeGuard":"boolean isKnownSystemDataType( String v ) {\n  return SystemDataTypes.TYPE_SYSTEM_INFO_NONE.toString().equals( v )\n      || SystemDataTypes.getTypeFromString( v ) != null;\n}","tryCatchPattern":"try {\n  converter.string2enum( SystemDataTypes.class, value );\n} catch ( KettleValueException e ) {\n  logError( e.getMessage() ); // shows offending value and enum class\n  // substitute a default or fail the mapping early\n}","preventionTips":["Trim and normalize source values feeding metadata injection","Copy enum codes from SystemDataTypes rather than typing them by hand","Validate mapping spreadsheets after Pentaho version upgrades"],"tags":["metadata-injection","enum","validation"],"backgroundTag":"invalid-enum-value","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"}