hyperledger/fabric · error
Rule-all deployment specs should match(%d, %d)
Error message
Rule-all deployment specs should match(%d, %d)
What it means
ValidateCip byte-compared the ChaincodeDeploymentSpec fields of the base and other package and they differ. All owner-endorsed packages must embed the exact same deployment spec (same chaincode code package) for the endorsements to be collatable.
Source
Thrown at core/common/ccpackage/ccpackage.go:70
panic("do not call with nil parameters")
}
if (baseCip.OwnerEndorsements == nil && otherCip.OwnerEndorsements != nil) || (baseCip.OwnerEndorsements != nil && otherCip.OwnerEndorsements == nil) {
return errors.New("endorsements should either be both nil or not nil")
}
bN := len(baseCip.OwnerEndorsements)
oN := len(otherCip.OwnerEndorsements)
if bN > 1 || oN > 1 {
return errors.New("expect utmost 1 endorsement from a owner")
}
if bN != oN {
return fmt.Errorf("Rule-all packages should be endorsed or none should be endorsed failed for (%d, %d)", bN, oN)
}
if !bytes.Equal(baseCip.ChaincodeDeploymentSpec, otherCip.ChaincodeDeploymentSpec) {
return fmt.Errorf("Rule-all deployment specs should match(%d, %d)", len(baseCip.ChaincodeDeploymentSpec), len(otherCip.ChaincodeDeploymentSpec))
}
if !bytes.Equal(baseCip.InstantiationPolicy, otherCip.InstantiationPolicy) {
return fmt.Errorf("Rule-all instantiation policies should match(%d, %d)", len(baseCip.InstantiationPolicy), len(otherCip.InstantiationPolicy))
}
return nil
}
func createSignedCCDepSpec(cdsbytes []byte, instpolicybytes []byte, endorsements []*peer.Endorsement) (*common.Envelope, error) {
if cdsbytes == nil {
return nil, errors.New("nil chaincode deployment spec")
}
if instpolicybytes == nil {
return nil, errors.New("nil instantiation policy")
}
View on GitHub (pinned to 2736b63f8f)
Solutions
- Ensure all owners sign the identical chaincode package bytes
- Rebuild and redistribute the deployment spec to every owner and redo signing
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at core/common/ccpackage/ccpackage.go:70 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/6e39ba7e827197c3.
Report an issue: GitHub.