hyperledger/fabric · error

consortium %s org %s attempted to change MSP ID from %s to %

Error message

consortium %s org %s attempted to change MSP ID from %s to %s

What it means

Returned by Bundle.ValidateNew during a config update when an org that exists in both the old and new consortium definitions changed its MSP identifier. MSP IDs are immutable per org name across config updates; this guards against a config that would silently re-alias an organization's identity.

Source

Thrown at common/channelconfig/bundle.go:156

		ncc, ok := nb.ConsortiumsConfig()
		if !ok {
			return errors.Errorf("current config has consortiums section, but new config does not")
		}

		for consortiumName, consortium := range cc.Consortiums() {
			nconsortium, ok := ncc.Consortiums()[consortiumName]
			if !ok {
				continue
			}

			for orgName, org := range consortium.Organizations() {
				norg, ok := nconsortium.Organizations()[orgName]
				if !ok {
					continue
				}
				mspID := org.MSPID()
				if mspID != norg.MSPID() {
					return errors.Errorf("consortium %s org %s attempted to change MSP ID from %s to %s", consortiumName, orgName, mspID, norg.MSPID())
				}
			}
		}
	} else if _, okNew := nb.ConsortiumsConfig(); okNew {
		return errors.Errorf("current config has no consortiums section, but new config does")
	}

	return nil
}

// NewBundleFromEnvelope wraps the NewBundle function, extracting the needed
// information from a full configtx
func NewBundleFromEnvelope(env *cb.Envelope, bccsp bccsp.BCCSP) (*Bundle, error) {
	payload, err := protoutil.UnmarshalPayload(env.Payload)
	if err != nil {
		return nil, errors.Wrap(err, "failed to unmarshal payload from envelope")
	}

View on GitHub (pinned to 2736b63f8f)

Solutions

  1. Keep the org's original MSP ID in the config update
  2. If a new MSP identity is required, add it as a new organization and remove the old one in separate steps
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at common/channelconfig/bundle.go:156 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/bfe29d73bdd03c23. Report an issue: GitHub.