{"record":{"id":"b6b43d821ec25804","repo":"provectus/kafka-ui","slug":"name-serde-is-not-configured","errorCode":null,"errorMessage":"${name} serde is not configured","messagePattern":"(.+?) serde is not configured","errorType":"validation","errorClass":"ValidationException","httpStatus":null,"severity":"error","filePath":"kafka-ui-api/src/main/java/com/provectus/kafka/ui/serdes/SerdesInitializer.java","lineNumber":206,"sourceCode":"  }\n\n  private SerdeInstance createSerdeWithBuiltInSerdeName(SerdeConfig serdeConfig,\n                                                        PropertyResolver serdeProps,\n                                                        PropertyResolver clusterProps,\n                                                        PropertyResolver globalProps) {\n    String name = serdeConfig.getName();\n    if (serdeConfig.getClassName() != null) {\n      throw new ValidationException(\"className can't be set for built-in serde\");\n    }\n    if (serdeConfig.getFilePath() != null) {\n      throw new ValidationException(\"filePath can't be set for built-in serde types\");\n    }\n    var clazz = builtInSerdeClasses.get(name);\n    BuiltInSerde serde = createSerdeInstance(clazz);\n    if (serdeConfig.getProperties() == null || serdeConfig.getProperties().isEmpty()) {\n      if (!autoConfigureSerde(serde, clusterProps, globalProps)) {\n        // no properties provided and serde does not support auto-configuration\n        throw new ValidationException(name + \" serde is not configured\");\n      }\n    } else {\n      // configuring serde with explicitly set properties\n      serde.configure(serdeProps, clusterProps, globalProps);\n    }\n    return new SerdeInstance(\n        name,\n        serde,\n        nullablePattern(serdeConfig.getTopicKeysPattern()),\n        nullablePattern(serdeConfig.getTopicValuesPattern()),\n        null\n    );\n  }\n\n  private boolean autoConfigureSerde(BuiltInSerde serde, PropertyResolver clusterProps, PropertyResolver globalProps) {\n    if (serde.canBeAutoConfigured(clusterProps, globalProps)) {\n      serde.autoConfigure(clusterProps, globalProps);\n      return true;","sourceCodeStart":188,"sourceCodeEnd":224,"githubUrl":"https://github.com/provectus/kafka-ui/blob/83b5a60cc08501b570a0c4d0b4cdfceb1b88d6b7/kafka-ui-api/src/main/java/com/provectus/kafka/ui/serdes/SerdesInitializer.java#L188-L224","documentation":"Built-in serdes can auto-configure from cluster properties; if the serde entry supplies neither explicit properties nor supports auto-configuration, createSerdeWithBuiltInSerdeName throws ValidationException('<name> serde is not configured') because the serde cannot be initialized without settings.","triggerScenarios":"Adding a built-in serde (e.g. avro-schema-registry, protobuf) with no properties while the cluster config lacks the values its auto-configuration requires (e.g. schema registry URL).","commonSituations":"Enabling protobuf serde without schema-registry settings in the cluster config; auto-configure returning false because required cluster properties are absent.","solutions":["Provide the required properties for the serde under kafka.clusters.<n>.serde.<i>.properties (e.g. schema registry URL)","Add the corresponding cluster-level settings the serde's auto-configuration looks for","Remove the serde entry if it is not needed for that cluster"],"exampleFix":"// before\nserde:\n  - name: avro-schema-registry   # no properties, no registry config\n// after\nserde:\n  - name: avro-schema-registry\n    properties:\n      schema.registry.url: http://schema-registry:8081","handlingStrategy":"validation","validationCode":"if (isBuiltInSerdeName(name)\n    && (cfg.getProperties() == null || cfg.getProperties().isEmpty())\n    && !builtinSupportsAutoConfigure(name))\n  throw new IllegalArgumentException(name + \" serde requires explicit properties\");","typeGuard":null,"tryCatchPattern":"try {\n  serde = createSerdeFromConfig(cfg, ...);\n} catch (ValidationException e) {\n  log.error(\"Serde {} unconfigured: {}\", cfg.getName(), e.getMessage());\n  throw e;\n}","preventionTips":["Provide required properties (e.g. schema registry URL) when enabling built-in serdes","Check serde docs for auto-configuration requirements per cluster","Fail fast in a config smoke test before startup"],"tags":["serde","config","validation","built-in"],"backgroundTag":"missing-required-config-field","analyzedSha":"83b5a60cc08501b570a0c4d0b4cdfceb1b88d6b7","analyzedAt":"2026-09-08T04:35:39.002Z","contentChangedAt":"2026-09-08T04:35:39.002Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}