cadence-client icon indicating copy to clipboard operation
cadence-client copied to clipboard

Error "unable to decode argument" if return nil from child workflow

Open uskyt opened this issue 4 years ago • 2 comments

Describe the bug I am writing a cadence workflow that starts some child workflows like this:

var result interface{}
workflow.ExecuteChildWorkflow(childCtx, MyWorkflowName, arg1, arg2).Get(childCtx, &result)

But this fails if the workflows return nil as result. I get "unable to decode argument: %d, %v, with json error: %v" from cadence/internal/encoding.go:67. Specifically unable to decode argument: 0, *interface {}, with json error: EOF

To Reproduce Can be easily reproduced as described above.

Additional context The problem is similar to the one solved in this issue: https://github.com/uber-go/cadence-client/issues/943

uskyt avatar Aug 10 '20 09:08 uskyt

Reproduced. However this only occurs with return type of interface{}. Any other type works fine.

vytautas-karpavicius avatar Aug 11 '20 09:08 vytautas-karpavicius

Hello @vytautas-karpavicius, facing this issue while trying to implement a generic child workflow invocation (similar to dsl from samples) and interface type is required to support most of the cases. Taking into account it was fixed for activities, I'm not sure why a fix for this was not taken into account, not clear from your response above. Any chance this can be fixed?

xn3cr0nx avatar Apr 14 '22 16:04 xn3cr0nx