Closed as not planned
Closed as not planned
Description
Expected Behavior
Dapr workflow should complete without error when the actor state store is DynamoDB.
Binary payloads should be stored as DynamoDB Binary (B) attributes, and text should continue to be stored as String (S) attributes.
Actual Behavior
The following error occurs when the workflow quickstart code runs.
2025/01/10 00:05:00 failed to start workflow: failed to start orchestrator: rpc error: code = Unknown desc = error from internal actor: InternalFailure: The request processing has failed because of an unknown error, exception or failure.
== APP - order-processor == status code: 500, request id: 263b9cb8-2ddd-4ef1-9bcc-402853c8319c
== APP - order-processor == exit status 1
The App process exited with error code: exit status 1
This is because DynamoDB state store doesn't fully support binary data value.
All state values including binary data were being coerced into UTF-8 strings. If the payload contains any invalid UTF-8 sequences, DynamoDB throws error.
Steps to Reproduce the Problem
- Create DynamoDB table with primary key (attribute name: key)
- git clone https://github.com/dapr/quickstarts.git
- Remove workflows/components/statestore_redis.yaml
- Add workflows/components/statestore_dynamodb.yaml
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: statestore
spec:
type: state.aws.dynamodb
version: v1
metadata:
- name: region
value: ap-northeast-1
- name: table
value: dapr_state
- name: actorStateStore
value: "true"
- cd workflows/go/sdk
- dapr run -f .
Release Note
RELEASE NOTE: