hyperledger/fabric · error

could not find policy %s

Error message

could not find policy %s

What it means

SigFilter.Apply guard: the channel's PolicyManager has no policy registered under the selected policy name (the Writers policy, or the maintenance-mode Writers policy during consensus-type migration). The channel config lacks a required policy — a malformed or incomplete channel configuration.

Source

Thrown at orderer/common/msgprocessor/sigfilter.go:71

		logger.Panic("Programming error: orderer config not found")
	}

	signedData, err := protoutil.EnvelopeAsSignedData(message)
	if err != nil {
		return fmt.Errorf("could not convert message to signedData: %s", err)
	}

	// In maintenance mode, we typically require the signature of /Channel/Orderer/Writers.
	// This will filter out configuration changes that are not related to consensus-type migration
	// (e.g on /Channel/Application), and will block Deliver requests from peers (which are normally /Channel/Readers).
	policyName := sf.normalPolicyName
	if ordererConf.ConsensusState() == orderer.ConsensusType_STATE_MAINTENANCE {
		policyName = sf.maintenancePolicyName
	}

	policy, ok := sf.support.PolicyManager().GetPolicy(policyName)
	if !ok {
		return fmt.Errorf("could not find policy %s", policyName)
	}

	err = policy.EvaluateSignedData(signedData)
	if err != nil {
		logger.Warnw("SigFilter evaluation failed", "error", err.Error(), "ConsensusState", ordererConf.ConsensusState(), "policyName", policyName, "signingIdentity", protoutil.LogMessageForSerializedIdentities(signedData))
		return errors.Wrap(errors.WithStack(ErrPermissionDenied), err.Error())
	}
	return nil
}

View on GitHub (pinned to 2736b63f8f)

Solutions

  1. Fix the channel config so the referenced policy (e.g. /Channel/Orderer/Writers) exists
  2. Re-create or correct the channel with a well-formed configtx
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at orderer/common/msgprocessor/sigfilter.go:71 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/a5287412585782e1. Report an issue: GitHub.