{"record":{"id":"3d38fefe7e5ebb5d","repo":"pentaho/pentaho-kettle","slug":"unable-to-locate-value-meta-plugin-of-type-id","errorCode":null,"errorMessage":"Unable to locate value meta plugin of type (id) ","messagePattern":"Unable to locate value meta plugin of type \\(id\\) ","errorType":"exception","errorClass":"KettlePluginException","httpStatus":null,"severity":"error","filePath":"core/src/main/java/org/pentaho/di/core/row/value/ValueMetaFactory.java","lineNumber":40,"sourceCode":"import org.pentaho.di.core.exception.KettlePluginException;\nimport org.pentaho.di.core.plugins.PluginInterface;\nimport org.pentaho.di.core.plugins.PluginRegistry;\nimport org.pentaho.di.core.row.ValueMetaInterface;\n\n/**\n * This class will hand out value meta objects from the plugin registry.\n *\n * @author matt\n *\n */\npublic class ValueMetaFactory {\n\n  public static PluginRegistry pluginRegistry = PluginRegistry.getInstance();\n\n  public static ValueMetaInterface createValueMeta( String name, int type, int length, int precision ) throws KettlePluginException {\n    PluginInterface stringPlugin = pluginRegistry.getPlugin( ValueMetaPluginType.class, String.valueOf( type ) );\n    if ( stringPlugin == null ) {\n      throw new KettlePluginException( \"Unable to locate value meta plugin of type (id) \" + type );\n    }\n    ValueMetaInterface valueMeta = pluginRegistry.loadClass( stringPlugin, ValueMetaInterface.class );\n    valueMeta.setName( name );\n    valueMeta.setLength( length, precision );\n    return valueMeta;\n  }\n\n  public static ValueMetaInterface createValueMeta( String name, int type ) throws KettlePluginException {\n    return createValueMeta( name, type, -1, -1 );\n  }\n\n  public static ValueMetaInterface createValueMeta( int type ) throws KettlePluginException {\n    return createValueMeta( null, type, -1, -1 );\n  }\n\n  public static ValueMetaInterface cloneValueMeta( ValueMetaInterface source ) throws KettlePluginException {\n    return cloneValueMeta( source, source.getType() );\n  }","sourceCodeStart":22,"sourceCodeEnd":58,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/core/src/main/java/org/pentaho/di/core/row/value/ValueMetaFactory.java#L22-L58","documentation":"Thrown by ValueMetaFactory.createValueMeta when the plugin registry lookup for a value meta plugin of the requested type id returns null — i.e. no value meta plugin is registered for that type code. The type id that failed the lookup is appended to the message.","triggerScenarios":"Thrown at core/src/main/java/org/pentaho/di/core/row/value/ValueMetaFactory.java:40 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure the value meta plugin for that type is on the classpath and registered in the plugin registry","Use a built-in type code from ValueMetaInterface instead of a custom/unknown id","Check for plugin loading errors in the Pentaho logs at startup"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}