hyperledger/fabric · error

could not create application group

Error message

could not create application group

What it means

Wrapping error in NewChannelGroup: NewApplicationGroup failed while building the application section of the channel config. Causes include invalid application org definitions, ACL values, capabilities, or policy errors; the wrapped error identifies the concrete failure.

Source

Thrown at internal/configtxgen/encoder/encoder.go:167

		addValue(channelGroup, channelconfig.ConsortiumValue(conf.Consortium), channelconfig.AdminsPolicyKey)
	}

	if len(conf.Capabilities) > 0 {
		addValue(channelGroup, channelconfig.CapabilitiesValue(conf.Capabilities), channelconfig.AdminsPolicyKey)
	}

	var err error
	if conf.Orderer != nil {
		channelGroup.Groups[channelconfig.OrdererGroupKey], err = NewOrdererGroup(conf.Orderer, conf.Capabilities)
		if err != nil {
			return nil, errors.Wrap(err, "could not create orderer group")
		}
	}

	if conf.Application != nil {
		channelGroup.Groups[channelconfig.ApplicationGroupKey], err = NewApplicationGroup(conf.Application)
		if err != nil {
			return nil, errors.Wrap(err, "could not create application group")
		}
	}

	if conf.Consortiums != nil {
		channelGroup.Groups[channelconfig.ConsortiumsGroupKey], err = NewConsortiumsGroup(conf.Consortiums)
		if err != nil {
			return nil, errors.Wrap(err, "could not create consortiums group")
		}
	}

	channelGroup.ModPolicy = channelconfig.AdminsPolicyKey
	return channelGroup, nil
}

// NewOrdererGroup returns the orderer component of the channel configuration.  It defines parameters of the ordering service
// about how large blocks should be, how frequently they should be emitted, etc. as well as the organizations of the ordering network.
// It sets the mod_policy of all elements to "Admins".  This group is always present in any channel configuration.
func NewOrdererGroup(conf *genesisconfig.Orderer, channelCapabilities map[string]bool) (*cb.ConfigGroup, error) {

View on GitHub (pinned to 2736b63f8f)

Solutions

  1. Fix the failing application org or policy per the wrapped error message
  2. Validate the Application section of the profile: organization MSPDirs, capabilities, and ACLs
  3. Rerun configtxgen after correcting configtx.yaml
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at internal/configtxgen/encoder/encoder.go:167 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/c673296938cac446. Report an issue: GitHub.