{"record":{"id":"df0fd6a00b093d06","repo":"apache/beam","slug":"there-is-no-kafka-read-implementation-that-supports-every","errorCode":null,"errorMessage":"There is no Kafka read implementation that supports every configured property! Not supported implementations with the associated properties: ","messagePattern":"There is no Kafka read implementation that supports every configured property! Not supported implementations with the associated properties: ","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"sdks/java/io/kafka/src/main/java/org/apache/beam/sdk/io/kafka/KafkaIOReadImplementationCompatibility.java","lineNumber":228,"sourceCode":"      final Object currentValue;\n      try {\n        currentValue = KafkaIOReadProperties.findGetterMethod(property).invoke(read);\n      } catch (Exception e) {\n        throw new RuntimeException(\"Should not happen\", e);\n      }\n      if (Objects.equals(defaultValue, currentValue)) {\n        // the defaultValue is always allowed,\n        // so there would be no compatibility issue\n        continue;\n      }\n      // the property has got a value, so we can't allow the not-supported implementations\n      for (KafkaIOReadImplementation notSupportedImplementation : notSupportedImplementations) {\n        notSupportedImplementationsWithProperties.put(notSupportedImplementation, property);\n      }\n    }\n    if (EnumSet.allOf(KafkaIOReadImplementation.class)\n        .equals(notSupportedImplementationsWithProperties.keySet())) {\n      throw new IllegalStateException(\n          \"There is no Kafka read implementation that supports every configured property! \"\n              + \"Not supported implementations with the associated properties: \"\n              + notSupportedImplementationsWithProperties);\n    }\n    return new KafkaIOReadImplementationCompatibilityResult(\n        notSupportedImplementationsWithProperties);\n  }\n\n  static class KafkaIOReadImplementationCompatibilityResult {\n    private final Multimap<KafkaIOReadImplementation, KafkaIOReadProperties> notSupported;\n\n    private KafkaIOReadImplementationCompatibilityResult(\n        Multimap<KafkaIOReadImplementation, KafkaIOReadProperties>\n            notSupportedImplementationsWithAssociatedProperties) {\n      this.notSupported = notSupportedImplementationsWithAssociatedProperties;\n    }\n\n    /**","sourceCodeStart":210,"sourceCodeEnd":246,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/io/kafka/src/main/java/org/apache/beam/sdk/io/kafka/KafkaIOReadImplementationCompatibility.java#L210-L246","documentation":"KafkaIO evaluates all known read implementations (legacy, SDF unbounded, SDF bounded via check) against the configured properties. getCompatibility throws IllegalStateException when every implementation is disqualified, meaning no read implementation can honor the current configuration combination.","triggerScenarios":"Combining Kafka read options such that no implementation supports them all — e.g. setting offset consumption + admin-based features with a configuration the SDF implementations reject while legacy is disabled — during expandWithReadImplementations.","commonSituations":"Upgrading Beam where legacy read was removed and some property (e.g. setReadBackLineage, unconsumed partitions) is unsupported by the SDF read; exotic option combinations in a config-driven pipeline.","solutions":["Read the exception's map of implementation→unsupported property and drop or replace the offending property.","Upgrade/downgrade Beam to a version whose SDF read supports the property you need.","Simplify configuration (e.g. remove unsupported offset/admin options) to a combination supported by the SDF-based read."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  pipeline.run();\n} catch (IllegalStateException e) {\n  if (e.getMessage() != null && e.getMessage().contains(\"no Kafka read implementation\")) {\n    // inspect the implementation->property map in the message and drop offending options\n  }\n  throw e;\n}","preventionTips":["Avoid combining legacy-only read options with new SDF-only options","Upgrade Beam together with any code using KafkaIO advanced options","Review KafkaIOReadImplementationCompatibility docs when adding read options"],"tags":["java","kafka","configuration","sdf"],"backgroundTag":"conflicting-config-options","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}