hyperledger/fabric · error
signed proposal must not be nil from caller [%s]
Error message
signed proposal must not be nil from caller [%s]
What it means
Returned by the chaincode Handler's checkACL when the signed proposal is nil while validating a chaincode-to-chaincode invocation. The ACL check needs the caller's signed proposal to authenticate the invoker; a nil one means the calling chaincode shim sent an incomplete invocation context.
Source
Thrown at core/chaincode/handler.go:390
}()
}
// Check if the transactor is allow to call this chaincode on this channel
func (h *Handler) checkACL(signedProp *pb.SignedProposal, proposal *pb.Proposal, ccIns *sysccprovider.ChaincodeInstance) error {
// if we are here, all we know is that the invoked chaincode is either
// - a system chaincode that *is* invokable through a cc2cc
// (but we may still have to determine whether the invoker can perform this invocation)
// - an application chaincode
// (and we still need to determine whether the invoker can invoke it)
if h.BuiltinSCCs.IsSysCC(ccIns.ChaincodeName) {
// Allow this call
return nil
}
// A Nil signedProp will be rejected for non-system chaincodes
if signedProp == nil {
return errors.Errorf("signed proposal must not be nil from caller [%s]", ccIns.String())
}
return h.ACLProvider.CheckACL(resources.Peer_ChaincodeToChaincode, ccIns.ChannelID, signedProp)
}
func (h *Handler) deregister() {
h.Registry.Deregister(h.chaincodeID)
}
func (h *Handler) streamDone() <-chan struct{} {
h.mutex.Lock()
defer h.mutex.Unlock()
return h.streamDoneChan
}
func (h *Handler) ProcessStream(stream ccintf.ChaincodeStream) error {
defer h.deregister()
View on GitHub (pinned to 2736b63f8f)
Solutions
- Ensure clients submit a properly signed proposal for chaincode-to-chaincode invocations
- Fix the client SDK/proxy that dropped the signed proposal before submission
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at core/chaincode/handler.go:390 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/92eeaf1eeaf04080.
Report an issue: GitHub.