hyperledger/fabric · error
expected key %s to encode a value of type Int64, but was %T
Error message
expected key %s to encode a value of type Int64, but was %T
What it means
DeserializeFieldAsInt64 type guard: the lifecycle state at the field key decodes to a StateData oneof that is not Int64, so it cannot be returned as an integer (e.g. a sequence field holding a string).
Source
Thrown at core/chaincode/lifecycle/serializer.go:468
}
err = proto.Unmarshal(bin, msg)
if err != nil {
return errors.Wrapf(err, "could not unmarshal key %s to %T", FieldKey(namespace, name, field), msg)
}
return nil
}
func (s *Serializer) DeserializeFieldAsInt64(namespace, name, field string, state ReadableState) (int64, error) {
value, err := s.DeserializeField(namespace, name, field, state)
if err != nil {
return 0, err
}
if value.Type == nil {
return 0, nil
}
oneOf, ok := value.Type.(*lb.StateData_Int64)
if !ok {
return 0, errors.Errorf("expected key %s to encode a value of type Int64, but was %T", FieldKey(namespace, name, field), value.Type)
}
return oneOf.Int64, nil
}
func (s *Serializer) DeserializeAllMetadata(namespace string, state RangeableState) (map[string]*lb.StateMetadata, error) {
prefix := fmt.Sprintf("%s/%s/", namespace, MetadataInfix)
kvs, err := state.GetStateRange(prefix)
if err != nil {
return nil, errors.WithMessagef(err, "could not get state range for namespace %s", namespace)
}
result := map[string]*lb.StateMetadata{}
for key, value := range kvs {
name := key[len(prefix):]
metadata := &lb.StateMetadata{}
err = proto.Unmarshal(value, metadata)
if err != nil {
return nil, errors.Wrapf(err, "error unmarshalling metadata for key %s", key)
}View on GitHub (pinned to 2736b63f8f)
Solutions
- Ensure numeric fields (like sequence) were committed as Int64 values
- Re-commit the chaincode definition with the correct field type
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at core/chaincode/lifecycle/serializer.go:468 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of hyperledger/fabric@2736b63f8f (2026-09-04).
Data as JSON: /api/errors/80ebd6e83b0945ff.
Report an issue: GitHub.