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

  1. Ensure all owners sign the identical chaincode package bytes
  2. 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.