{"record":{"id":"31b45c08b102c5cb","repo":"pentaho/pentaho-kettle","slug":"e-no-own-message-error-creating-value-meta-for-constant","errorCode":null,"errorMessage":"e (no own message; error creating value meta for constant field)","messagePattern":"e \\(no own message; error creating value meta for constant field\\)","errorType":"exception","errorClass":"KettleStepException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/trans/steps/constant/ConstantMeta.java","lineNumber":336,"sourceCode":"\n  @Override\n  public void getFields( Bowl bowl, RowMetaInterface rowMeta, String name, RowMetaInterface[] info, StepMeta nextStep,\n    VariableSpace space, Repository repository, IMetaStore metaStore ) throws KettleStepException {\n    for ( int i = 0; i < fieldName.length; i++ ) {\n      if ( fieldName[i] != null && fieldName[i].length() != 0 ) {\n        int type = ValueMetaFactory.getIdForValueMeta( fieldType[i] );\n        if ( type == ValueMetaInterface.TYPE_NONE ) {\n          type = ValueMetaInterface.TYPE_STRING;\n        }\n        try {\n          ValueMetaInterface v = ValueMetaFactory.createValueMeta( fieldName[i], type );\n          v.setLength( fieldLength[i] );\n          v.setPrecision( fieldPrecision[i] );\n          v.setOrigin( name );\n          v.setConversionMask( fieldFormat[i] );\n          rowMeta.addValueMeta( v );\n        } catch ( Exception e ) {\n          throw new KettleStepException( e );\n        }\n      }\n    }\n  }\n\n  public String getXML() {\n    StringBuilder retval = new StringBuilder( 300 );\n\n    retval.append( \"    <fields>\" ).append( Const.CR );\n    for ( int i = 0; i < fieldName.length; i++ ) {\n      if ( fieldName[i] != null && fieldName[i].length() != 0 ) {\n        retval.append( \"      <field>\" ).append( Const.CR );\n        retval.append( \"        \" ).append( XMLHandler.addTagValue( \"name\", fieldName[i] ) );\n        retval.append( \"        \" ).append( XMLHandler.addTagValue( \"type\", fieldType[i] ) );\n        retval.append( \"        \" ).append( XMLHandler.addTagValue( \"format\", fieldFormat[i] ) );\n        retval.append( \"        \" ).append( XMLHandler.addTagValue( \"currency\", currency[i] ) );\n        retval.append( \"        \" ).append( XMLHandler.addTagValue( \"decimal\", decimal[i] ) );\n        retval.append( \"        \" ).append( XMLHandler.addTagValue( \"group\", group[i] ) );","sourceCodeStart":318,"sourceCodeEnd":354,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/trans/steps/constant/ConstantMeta.java#L318-L354","documentation":"In ConstantMeta.getFields, while building the output ValueMeta for each constant field, any exception (e.g. from ValueMeta construction/format parsing) is rethrown as KettleStepException(e) with no added message — the cause's message is all the developer sees.","triggerScenarios":"Defining a Constant step field whose type/format/length/precision combination fails when constructing or configuring its ValueMeta while the step computes its output row layout.","commonSituations":"Invalid conversion mask strings, precision set on non-numeric types, negative/absurd lengths, or corrupted field metadata loaded from an old transformation.","solutions":["Read the cause's message for which field/value meta failed","Fix the offending field's type/format/length/precision in the Add Constants step","Clear invalid conversion masks (empty if not needed) and ensure precision only on Number/BigNumber types","Recreate the field entries in Spoon to reset metadata"],"exampleFix":"// before\nfield: rate, type: String, precision: 2  (invalid)\n// after\nfield: rate, type: Number, precision: 2, length: 10","handlingStrategy":"validation","validationCode":"// verify field definitions before building row meta\nfor (int i = 0; i < meta.getFieldName().length; i++) {\n  if (Const.isEmpty(meta.getFieldName()[i]))\n    throw new KettleStepException(\"Constant field \" + i + \" has no name\");\n}","typeGuard":null,"tryCatchPattern":"try { meta.getFields(rowMeta, name, info, stepMeta, space, store); }\ncatch (KettleStepException e) { logError(\"Bad constant field definition: \" + e.getMessage(), e); }","preventionTips":["Only set precision on numeric types","Leave conversion masks empty when not needed","Rebuild fields in Spoon if loaded from old versions"],"tags":["pdi","value-metadata","row-structure"],"backgroundTag":"invalid-config-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"}