The the Cluster Operator has in the images configuration some Kafka version which is not supported, and if some user uses it, it will result in an error like this:
2021-05-21 21:32:46 WARN AbstractOperator:516 - Reconciliation #14(timer) Kafka(myproject/my-cluster): Failed to reconcile java.lang.IllegalArgumentException: argument "src" is null at com.fasterxml.jackson.databind.ObjectMapper._assertNotNull(ObjectMapper.java:4737) ~[com.fasterxml.jackson.core.jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3504) ~[com.fasterxml.jackson.core.jackson-databind-2.11.3.jar:2.11.3] at io.strimzi.operator.cluster.model.KafkaConfiguration.readConfigModel(KafkaConfiguration.java:107) ~[io.strimzi.cluster-operator-0.24.0-SNAPSHOT.jar:0.24.0-SNAPSHOT] at io.strimzi.operator.cluster.model.KafkaConfiguration.validate(KafkaConfiguration.java:84) ~[io.strimzi.cluster-operator-0.24.0-SNAPSHOT.jar:0.24.0-SNAPSHOT] at io.strimzi.operator.cluster.model.KafkaCluster.validateConfiguration(KafkaCluster.java:634) ~[io.strimzi.cluster-operator-0.24.0-SNAPSHOT.jar:0.24.0-SNAPSHOT] at io.strimzi.operator.cluster.model.KafkaCluster.fromCrd(KafkaCluster.java:418) ~[io.strimzi.cluster-operator-0.24.0-SNAPSHOT.jar:0.24.0-SNAPSHOT] at io.strimzi.operator.cluster.operator.assembly.KafkaAssemblyOperator$ReconciliationState.lambda$getKafkaClusterDescription$55(KafkaAssemblyOperator.java:1461) ~[io.strimzi.cluster-operator-0.24.0-SNAPSHOT.jar:0.24.0-SNAPSHOT] at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:38) ~[io.vertx.vertx-core-4.0.3.jar:4.0.3] at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:62) ~[io.vertx.vertx-core-4.0.3.jar:4.0.3] at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:179) ~[io.vertx.vertx-core-4.0.3.jar:4.0.3] at io.vertx.core.impl.future.PromiseImpl.tryComplete(PromiseImpl.java:23) ~[io.vertx.vertx-core-4.0.3.jar:4.0.3] at io.vertx.core.impl.future.PromiseImpl.onSuccess(PromiseImpl.java:49) ~[io.vertx.vertx-core-4.0.3.jar:4.0.3] at io.vertx.core.impl.future.FutureBase.lambda$emitSuccess$0(FutureBase.java:54) ~[io.vertx.vertx-core-4.0.3.jar:4.0.3] at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) [io.netty.netty-common-4.1.60.Final.jar:4.1.60.Final] at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) [io.netty.netty-common-4.1.60.Final.jar:4.1.60.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) [io.netty.netty-transport-4.1.60.Final.jar:4.1.60.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [io.netty.netty-common-4.1.60.Final.jar:4.1.60.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [io.netty.netty-common-4.1.60.Final.jar:4.1.60.Final] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [io.netty.netty-common-4.1.60.Final.jar:4.1.60.Final] at java.lang.Thread.run(Thread.java:834) [?:?]
This is because the ClusterOperatorConfig currently only checks if the suppoerted versions have an image but not if all configured versions are supported. However, it still failes later with this cryptic error caused by the missing JSON config-model.