Skip to content

protobuf Oneof field serialization+deseriablization not supported by Cadence #1296

@jiaoyli

Description

@jiaoyli

Describe the bug
passing OneOf field in request will fail with error:

'''json: cannot unmarshal object into Go struct field'''

To Reproduce
Is the issue reproducible?

  • Yes

Steps to reproduce the behavior:
Create a Cadence workflow that takes in a request field that contains a OneOf protobuf field.
Deserializing the input will fail with error '''json: cannot unmarshal object into Go struct field'''

Expected behavior
the oneof field should be supported.

Additional context
The root cause could be because cadence uses encode/json for serialization+deserialization. And this lib doesn't work for oneof fields. My current workaround is: before calling cadence, convert fields that contain Oneof to json string with package: "github.com/gogo/protobuf/jsonpb". then convert it back to proto field in Cadence workflow.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementfeaturenew feature requestup-for-grabsIssues that are good entry points for those new to Cadence that want to contribute

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions