hyperledger/fabric · error

bad org definition for org %s

Error message

bad org definition for org %s

What it means

encoder.NewOrdererOrgGroup failed while printing an org with -printOrg that has OrdererEndpoints defined: the org's definition (MSP config, endpoints, or capabilities context) is invalid for building an orderer org group.

Source

Thrown at cmd/configtxgen/main.go:127

	}

	err = protolator.DeepMarshalJSON(os.Stdout, env)
	if err != nil {
		return fmt.Errorf("malformed transaction contents: %s", err)
	}

	return nil
}

func doPrintOrg(t *genesisconfig.TopLevel, printOrg string) error {
	for _, org := range t.Organizations {
		if org.Name == printOrg {
			if len(org.OrdererEndpoints) > 0 {
				// An Orderer OrgGroup
				channelCapabilities := t.Capabilities["Channel"]
				og, err := encoder.NewOrdererOrgGroup(org, channelCapabilities)
				if err != nil {
					return errors.Wrapf(err, "bad org definition for org %s", org.Name)
				}

				if err := protolator.DeepMarshalJSON(os.Stdout, &ordererext.DynamicOrdererOrgGroup{ConfigGroup: og}); err != nil {
					return errors.Wrapf(err, "malformed org definition for org: %s", org.Name)
				}
				return nil
			}

			// Otherwise assume it is an Application OrgGroup, where the encoder is not strict whether anchor peers exist or not
			ag, err := encoder.NewApplicationOrgGroup(org)
			if err != nil {
				return errors.Wrapf(err, "bad org definition for org %s", org.Name)
			}
			if err := protolator.DeepMarshalJSON(os.Stdout, &peerext.DynamicApplicationOrgGroup{ConfigGroup: ag}); err != nil {
				return errors.Wrapf(err, "malformed org definition for org: %s", org.Name)
			}
			return nil
		}

View on GitHub (pinned to 2736b63f8f)

Solutions

  1. Fix the org's MSP and orderer endpoint configuration in configtx.yaml
  2. Check the wrapped error for the specific invalid field
  3. Ensure the Channel capability referenced by the org is correctly specified
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at cmd/configtxgen/main.go:127 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/28e5fd5ce5f4ef56. Report an issue: GitHub.