You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Version of Cadence server, and client(which language)
Server version: tested on 0.21, 0.22 & latest master
Client version: 0.18.3 (with and without grpc)
Client langauge: go
DB: tested on Cassandra and MySQL
Describe the bug
Setting a header (via context propagator) or a memo when starting a workflow with a nil (or empty) value in map results in errors similar to this:
"Uncategorized error","service":"cadence-frontend","error":"cadence serialization error: failed to write field 10 (TList): failed to write field 340 (TStruct): failed to write field 140 (TStruct): failed to write field 10 (TMap): invalid [key]: value is nil"
Additional context
This may (or may not) be related to internal type conversions between thrift <-> internal <-> proto. There are already few cases for special nil/empty value handling. It is possible something else is missing.
The text was updated successfully, but these errors were encountered:
When setting empty []byte on workflow header via context propagator. The error only happens when using gRPC. And it was already fixed with Fix proto mapper for Payload #4184 and was included in v0.21.3 and later.
Setting empty value []byte on workflow memo. This is not yet fixed and happens on Cassandra only. It is represented as map<text, blob>. Both nil and empty []byte are stored as memo: {'key': 0x} which when deserialized becomes nil. It in turn does not work with Thrift encoder that we still use for sending data to visibility store. It spits out an error to the logs. Also such workflow then has a corrupted visibility record. It is unable to view it via WebUI.
Version of Cadence server, and client(which language)
Describe the bug
Setting a header (via context propagator) or a memo when starting a workflow with a nil (or empty) value in map results in errors similar to this:
To Reproduce
Start a workflow with:
Expected behavior
No errors
Additional context
This may (or may not) be related to internal type conversions between thrift <-> internal <-> proto. There are already few cases for special nil/empty value handling. It is possible something else is missing.
The text was updated successfully, but these errors were encountered: