Skip to content

Fix/dynamodb unmarshal interface panic#1

Open
swills wants to merge 2 commits intomainfrom
fix/dynamodb-unmarshal-interface-panic
Open

Fix/dynamodb unmarshal interface panic#1
swills wants to merge 2 commits intomainfrom
fix/dynamodb-unmarshal-interface-panic

Conversation

@swills
Copy link
Collaborator

@swills swills commented Feb 5, 2026

This fixes a panic bug we hit.

…hal panic

Adds tests verifying UnmarshalMap does not panic when decoding into
struct fields of interface type that already hold concrete values.

Covers three scenarios:
- nil interface (decodes to map[string]interface{})
- pointer to struct (decodes into existing struct)
- struct value (should not panic with reflect.Set error)

Also adds test for named interface fields (e.g., fmt.Stringer) to
ensure graceful handling when map[string]interface{} is not assignable.
…ields

Fixes decodeMap to avoid panic when an interface field already holds
a concrete type that is not assignable from map[string]interface{}.

When the interface contains a pointer to struct, decode into it directly.
When it contains a non-pointer struct or incompatible type, handle
gracefully instead of calling reflect.Set with an incompatible value.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant