hyperledger/fabric · error

unexpected close of commit notification channel

Error message

unexpected close of commit notification channel

What it means

TransactionStatus guard: after registering for commit notifications and finding no existing validation code, the statusReceive channel was closed by the sender (commit notifier) before delivering a status, so the select received ok=false. It means the peer stopped delivering commit events for that transaction — an unexpected server-side condition, not a client cancellation.

Source

Thrown at internal/pkg/gateway/commit/finder.go:69

	if err != nil {
		return nil, err
	}

	if code, blockNumber, err := ledger.GetTxValidationCodeByTxID(transactionID); err == nil {
		status := &Status{
			BlockNumber:   blockNumber,
			TransactionID: transactionID,
			Code:          code,
		}
		return status, nil
	}

	select {
	case <-ctx.Done():
		return nil, ctx.Err()
	case status, ok := <-statusReceive:
		if !ok {
			return nil, errors.New("unexpected close of commit notification channel")
		}
		return status, nil
	}
}

View on GitHub (pinned to 2736b63f8f)

Solutions

  1. Re-query the transaction's validation code via the ledger as a fallback
  2. Check peer health and deliver/commit service logs
  3. Retry the submit/commit-status flow if the connection was re-established
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at internal/pkg/gateway/commit/finder.go:69 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/9ecad694199e693d. Report an issue: GitHub.