{"record":{"id":"4fd1b38cf396b4db","repo":"pentaho/pentaho-kettle","slug":"kafkaconsumerinputmeta-unabletocreatevaluetype","errorCode":"KafkaConsumerInputMeta.UnableToCreateValueType","errorMessage":"KafkaConsumerInputMeta.UnableToCreateValueType","messagePattern":"KafkaConsumerInputMeta\\.UnableToCreateValueType","errorType":"exception","errorClass":"KettleStepException","httpStatus":null,"severity":"error","filePath":"plugins/kafka/core/src/main/java/org/pentaho/big/data/kettle/plugins/kafka/KafkaConsumerInputMeta.java","lineNumber":403,"sourceCode":"    putFieldOnRowMeta( getMessageField(), rowMeta, origin, space );\n    putFieldOnRowMeta( getTopicField(), rowMeta, origin, space );\n    putFieldOnRowMeta( getPartitionField(), rowMeta, origin, space );\n    putFieldOnRowMeta( getOffsetField(), rowMeta, origin, space );\n    putFieldOnRowMeta( getTimestampField(), rowMeta, origin, space );\n    return rowMeta;\n  }\n\n  void putFieldOnRowMeta( KafkaConsumerField field, RowMetaInterface rowMeta,\n                          String origin, VariableSpace space ) throws KettleStepException {\n    if ( field != null && !Utils.isEmpty( field.getOutputName() ) ) {\n      try {\n        String value = space.environmentSubstitute( field.getOutputName() );\n        ValueMetaInterface v = ValueMetaFactory.createValueMeta( value,\n        field.getOutputType().getValueMetaInterfaceType() );\n        v.setOrigin( origin );\n        rowMeta.addValueMeta( v );\n      } catch ( KettlePluginException e ) {\n        throw new KettleStepException( BaseMessages.getString(\n          PKG,\n     \"KafkaConsumerInputMeta.UnableToCreateValueType\",\n          field\n        ), e );\n      }\n    }\n  }\n\n\n  @Override public StepInterface getStep( StepMeta stepMeta, StepDataInterface stepDataInterface, int cnr, TransMeta tr, Trans trans ) {\n    return new KafkaConsumerInput( stepMeta, stepDataInterface, cnr, tr, trans );\n  }\n\n  @Override public StepDataInterface getStepData() {\n    return new KafkaConsumerInputData();\n  }\n\n  public void setTopics( List<String> topics ) {","sourceCodeStart":385,"sourceCodeEnd":421,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/kafka/core/src/main/java/org/pentaho/big/data/kettle/plugins/kafka/KafkaConsumerInputMeta.java#L385-L421","documentation":"KafkaConsumerInputMeta.putFieldOnRowMeta builds the output row metadata by calling ValueMetaFactory.createValueMeta for each field's configured output type; a KettlePluginException there is rethrown as KettleStepException with code KafkaConsumerInputMeta.UnableToCreateValueType. This means the plugin could not instantiate a ValueMetaInterface for the field's declared output type.","triggerScenarios":"getFields/putFieldOnRowMeta calls ValueMetaFactory.createValueMeta(name, type) and the factory throws KettlePluginException — typically because the registered ValueMeta plugin for that type code is missing/unavailable, or the type is invalid in this PDI installation.","commonSituations":"Incomplete PDI installation where value-type plugins aren't registered (broken plugin folder/classpath); Kafka plugin and core version mismatch; custom ValueMeta plugin removed after the transformation was configured; corrupted plugin cache.","solutions":["Verify the PDI plugins directory is intact and value-type plugins are present; reinstall/repair the PDI client.","Align the Kafka plugin version with your PDI version (replace the plugin jar set together).","Check the field's Output Type in the Kafka Consumer step and pick a standard type.","Clear any plugin cache / restart Spoon so plugins reload; check the log for the originating KettlePluginException message naming the missing type."],"exampleFix":"// before (field output type referencing unavailable custom type)\nfield.setOutputType(Type.CUSTOM_AVRO)\n// after\nfield.setOutputType(Type.STRING)","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { transMeta.getFields(rowMeta, origin, info, target, space, repository, metaStore); } catch (KettleStepException e) {\n  if (e.getMessage().contains(\"KafkaConsumerInputMeta.UnableToCreateValueType\")) {\n    log.error(\"Value type plugin unavailable; check plugins dir and field output type\", e);\n  }\n  throw e;\n}","preventionTips":["Verify plugin installation integrity after PDI upgrades.","Use standard ValueMeta types in Kafka Consumer field definitions.","Restart the PDI client after installing/updating plugins."],"tags":["kafka","pdi","plugin","value-meta","row-metadata"],"backgroundTag":"missing-dependency","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"}