hyperledger/fabric · error
consortium %s does not contain member org %s
Error message
consortium %s does not contain member org %s
What it means
After locating the consortium and the profile's Application section, ConfigTemplateFromGroup copies each application organization into the new channel's Application group by looking it up in the consortium's Groups map. This error is thrown when an org listed in the profile's Application.Organizations is not a member of the referenced consortium.
Source
Thrown at internal/configtxgen/encoder/encoder.go:538
if consortiums.Groups == nil {
return nil, errors.Errorf("system channel consortiums group appears to have no consortiums defined")
}
consortium, ok := consortiums.Groups[conf.Consortium]
if !ok {
return nil, errors.Errorf("supplied system channel group is missing '%s' consortium", conf.Consortium)
}
if conf.Application == nil {
return nil, errors.Errorf("supplied channel creation profile does not contain an application section")
}
for _, organization := range conf.Application.Organizations {
var ok bool
template.Groups[channelconfig.ApplicationGroupKey].Groups[organization.Name], ok = consortium.Groups[organization.Name]
if !ok {
return nil, errors.Errorf("consortium %s does not contain member org %s", conf.Consortium, organization.Name)
}
}
delete(template.Groups, channelconfig.ConsortiumsGroupKey)
addValue(template, channelconfig.ConsortiumValue(conf.Consortium), channelconfig.AdminsPolicyKey)
return template, nil
}
// MakeChannelCreationTransaction is a handy utility function for creating transactions for channel creation.
// It assumes the invoker has no system channel context so ignores all but the application section.
// Deprecated
func MakeChannelCreationTransaction(
channelID string,
signer identity.SignerSerializer,
conf *genesisconfig.Profile,
) (*cb.Envelope, error) {
template, err := DefaultConfigTemplate(conf)View on GitHub (pinned to 2736b63f8f)
Solutions
- Add the missing organization to the Consortium's Organizations list in the system channel profile in configtx.yaml
- Or remove the org from the profile's Application.Organizations if it should not join the channel
- Regenerate the system channel genesis block and retry channel creation
- Verify org names match exactly (case-sensitive) between Consortium and Application Organizations lists
Example fix
// before (configtx.yaml)
Consortiums:
SampleConsortium:
Organizations:
- Org1
Application:
Organizations:
- Org2
// after
Consortiums:
SampleConsortium:
Organizations:
- Org1
- Org2
Application:
Organizations:
- Org2 Defensive patterns
Strategy: validation
Validate before calling
// Go: ensure every application org is a member of the consortium before creating the tx
for _, org := range profile.Application.Organizations {
if consortium.Groups[org.Name] == nil {
return fmt.Errorf("org %q is not a member of consortium %q", org.Name, profile.Consortium)
}
} Type guard
func orgInConsortium(consortium *cb.ConfigGroup, orgName string) bool { return consortium.Groups[orgName] != nil } Try / catch
if err != nil {
if strings.Contains(err.Error(), "does not contain member org") {
return fmt.Errorf("add the org to the Consortium's Organizations in configtx.yaml: %w", err)
}
return err
} Prevention
- Whenever adding an org to an application channel profile, add it to the consortium too
- Cross-check Consortium vs Application Organizations lists in configtx.yaml reviews
- Automate a preflight check that diffs the two lists
When it happens
Trigger: Calling MakeChannelCreationTransaction(WithSystemChannelContext) where an organization named in the profile's Application.Organizations does not appear under the named consortium's Organizations in the system channel profile.
Common situations: Org added to an application channel profile before being added to the consortium; consortium name and org lists drifted after configtx.yaml edits; org name typo; two consortiums used interchangeably.
Related errors
- supplied system channel group is missing '%s' consortium
- supplied channel creation profile does not contain an applic
- config update generation failure
- malformed org definition for org: %s
- organization %s not found
AI-assisted analysis of hyperledger/fabric@2736b63f8f (2026-09-04).
Data as JSON: /api/errors/cc0daa349336c8bc.
Report an issue: GitHub.