Issue with kalix-proxy 1.0.27 and views?

Hi,

After I updated the java-sdk to version 1.1.0 I encountered an error during my integration tests “Enum column not supported in query yet”
The queries in my view do not use an enum column, the entity contains an enum field, but the query used to work on < 1.0.27
I started the docker-compose with kalix-proxy .0.28 and then that application is functioning, but I can not find a way to override the proxy version used by the TestKit.

2022-11-22 18:56:05,962 INFO  kalix.javasdk.impl.DiscoveryImpl - Received discovery call from [kalix-proxy-core 1.0.27] at [localhost]:[9000] supporting Kalix protocol 1.0
2022-11-22 18:56:06,003 ERROR kalix.javasdk.impl.DiscoveryImpl - Unspecified reported from Kalix system:  Service failed to start because of an unexpected error: Enum column not supported in query yet
{
  "timestamp": "2022-11-22T17:42:23.572Z",
  "mdc": {
    "akkaAddress": "akka://kalix-proxy@172.17.0.9:25520",
    "akkaSource": "akka://kalix-proxy/user/discovery-manager",
    "sourceActorSystem": "kalix-proxy"
  },
  "logger": "kalix.proxy.DiscoveryManager",
  "message": "Supervisor RestartSupervisor saw failure [7]: Enum column not supported in query yet",
  "exception": "java.lang.IllegalArgumentException: Enum column not supported in query yet\n\tat kalix.proxy.views.ColumnType$.apply(Tables.scala:253)\n\tat kalix.proxy.views.ViewTable.$anonfun$extractColumns$1(Tables.scala:142)\n\tat scala.collection.immutable.List.map(List.scala:250)\n\tat scala.collection.immutable.List.map(List.scala:79)\n\tat kalix.proxy.views.ViewTable.extractColumns(Tables.scala:141)\n\tat kalix.proxy.views.ViewTable.<init>(Tables.scala:128)\n\tat kalix.proxy.views.ViewTables$.$anonfun$definitions$2(Tables.scala:39)\n\tat scala.collection.immutable.List.map(List.scala:246)\n\tat kalix.proxy.views.ViewTables$.definitions(Tables.scala:27)\n\tat kalix.proxy.views.ViewTables$.apply(Tables.scala:17)\n\tat kalix.proxy.views.ViewDefinition.<init>(ViewDefinition.scala:315)\n\tat kalix.proxy.views.ViewDefinition$.parse(ViewDefinition.scala:303)\n\tat kalix.proxy.views.ViewSupportFactory.build(ViewSupportFactory.scala:106)\n\tat kalix.proxy.DiscoveryManager.$anonfun$startComponents$1(DiscoveryManager.scala:702)\n\tat scala.collection.immutable.Vector1.map(Vector.scala:1925)\n\tat scala.collection.immutable.Vector1.map(Vector.scala:377)\n\tat kalix.proxy.DiscoveryManager.startComponents(DiscoveryManager.scala:692)\n\tat kalix.proxy.DiscoveryManager.$anonfun$waitForInitDb$1(DiscoveryManager.scala:882)\n\tat akka.actor.typed.internal.BehaviorImpl$ReceiveMessageBehavior.receive(BehaviorImpl.scala:152)\n\tat akka.actor.typed.Behavior$.interpret(Behavior.scala:274)\n\tat akka.actor.typed.Behavior$.interpretMessage(Behavior.scala:230)\n\tat akka.actor.typed.internal.InterceptorImpl$$anon$2.apply(InterceptorImpl.scala:57)\n\tat akka.actor.typed.internal.SimpleSupervisor.aroundReceive(Supervision.scala:131)\n\tat akka.actor.typed.internal.InterceptorImpl.receive(InterceptorImpl.scala:85)\n\tat akka.actor.typed.Behavior$.interpret(Behavior.scala:274)\n\tat akka.actor.typed.Behavior$.interpretMessage(Behavior.scala:230)\n\tat akka.actor.typed.internal.InterceptorImpl$$anon$2.apply(InterceptorImpl.scala:57)\n\tat akka.actor.typed.internal.SimpleSupervisor.aroundReceive(Supervision.scala:131)\n\tat akka.actor.typed.internal.InterceptorImpl.receive(InterceptorImpl.scala:85)\n\tat akka.actor.typed.Behavior$.interpret(Behavior.scala:274)\n\tat akka.actor.typed.Behavior$.interpretMessage(Behavior.scala:230)\n\tat akka.actor.typed.internal.InterceptorImpl$$anon$2.apply(InterceptorImpl.scala:57)\n\tat akka.actor.typed.internal.SimpleSupervisor.aroundReceive(Supervision.scala:131)\n\tat akka.actor.typed.internal.InterceptorImpl.receive(InterceptorImpl.scala:85)\n\tat akka.actor.typed.Behavior$.interpret(Behavior.scala:274)\n\tat akka.actor.typed.Behavior$.interpretMessage(Behavior.scala:230)\n\tat akka.actor.typed.internal.InterceptorImpl$$anon$2.apply(InterceptorImpl.scala:57)\n\tat akka.actor.typed.internal.SimpleSupervisor.aroundReceive(Supervision.scala:131)\n\tat akka.actor.typed.internal.InterceptorImpl.receive(InterceptorImpl.scala:85)\n\tat akka.actor.typed.Behavior$.interpret(Behavior.scala:274)\n\tat akka.actor.typed.Behavior$.interpretMessage(Behavior.scala:230)\n\tat akka.actor.typed.internal.InterceptorImpl$$anon$2.apply(InterceptorImpl.scala:57)\n\tat akka.actor.typed.internal.RestartSupervisor.aroundReceive(Supervision.scala:279)\n\tat akka.actor.typed.internal.InterceptorImpl.receive(InterceptorImpl.scala:85)\n\tat akka.actor.typed.Behavior$.interpret(Behavior.scala:274)\n\tat akka.actor.typed.Behavior$.interpretMessage(Behavior.scala:230)\n\tat akka.actor.typed.internal.InterceptorImpl$$anon$2.apply(InterceptorImpl.scala:57)\n\tat akka.actor.typed.internal.RestartSupervisor.aroundReceive(Supervision.scala:279)\n\tat akka.actor.typed.internal.InterceptorImpl.receive(InterceptorImpl.scala:85)\n\tat akka.actor.typed.Behavior$.interpret(Behavior.scala:274)\n\tat akka.actor.typed.Behavior$.interpretMessage(Behavior.scala:230)\n\tat akka.actor.typed.internal.adapter.ActorAdapter.handleMessage(ActorAdapter.scala:128)\n\tat akka.actor.typed.internal.adapter.ActorAdapter.$anonfun$aroundReceive$2(ActorAdapter.scala:99)\n\tat akka.actor.typed.internal.adapter.ActorAdapter.$anonfun$aroundReceive$2$adapted(ActorAdapter.scala:95)\n\tat akka.actor.typed.internal.adapter.ActorAdapter.withSafelyAdapted(ActorAdapter.scala:202)\n\tat akka.actor.typed.internal.adapter.ActorAdapter.aroundReceive(ActorAdapter.scala:95)\n\tat akka.actor.ActorCell.receiveMessage(ActorCell.scala:579)\n\tat akka.actor.ActorCell.invoke(ActorCell.scala:547)\n\tat akka.dispatch.Mailbox.processMailbox(Mailbox.scala:270)\n\tat akka.dispatch.Mailbox.run(Mailbox.scala:231)\n\tat akka.dispatch.Mailbox.exec(Mailbox.scala:243)\n\tat java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)\n\tat java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)\n\tat java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)\n\tat java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)\n\tat java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)\n",
  "severity": "ERROR",
  "thread": "kalix-proxy-akka.actor.default-dispatcher-10",
  "version": "1.0.27"
}

Kind regards,
Richard

Hi Richard,

Yes, this is a regression in the views validation in Kalix Proxy 1.0.27. And there’s currently no way to override the proxy version in the testkit.

We’ve published Java SDK 1.1.1 now, which includes the bump to proxy 1.0.28 for the testkit.

Thanks,
Peter

2 Likes