Skip to content

Native image: jq scope descriptor records not registered in reflect-config.json #1780

Closed

Description

@mathecruz

Workflows that reference $workflow, $task, $runtime, $authorization, or an expression result inside a jq expression fail under GraalVM native image with:

java.lang.IllegalArgumentException: No serializer found for class org.openworkflow.sdk.impl.expressions.RuntimeDescriptor
and no properties discovered to create BeanSerializer ...
This appears to be a native image, in which case you may need to configure reflection for the class that is to be serialized

Root cause: JQExpression.createScope converts each jq scope variable to a JsonNode via Jackson before jq narrows to a field. Under native image this needs reflection metadata registered in reflect-config.json, but impl/core/src/main/resources/META-INF/native-image/.../reflect-config.json only registers CloudEvents lifecycle classes — not the jq scope descriptor records:

  • RuntimeDescriptor
  • WorkflowDescriptor
  • TaskDescriptor
  • DateTimeDescriptor / DateTimeDescriptor$Epoch
  • ExpressionDescriptor
  • AuthorizationDescriptor

Fix: register the 7 classes above in reflect-config.json using the same shape as existing entries. (every classes mentioned above are records)

Related: quarkiverse/quarkus-flow#1091

Activity

  1. added
    javaPull requests that update java code
    on Oct 20, 2026
  2. added theissue type on Oct 20, 2026
  3. changed the issue type fromtoon Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    javaPull requests that update java code

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions