diff --git a/x/distribution/types/fee_pool.go b/x/distribution/types/fee_pool.go index 0cf974608e4b..83a83b4ad813 100644 --- a/x/distribution/types/fee_pool.go +++ b/x/distribution/types/fee_pool.go @@ -20,8 +20,10 @@ func (f FeePool) ValidateGenesis() error { return fmt.Errorf("negative DecimalPool in distribution fee pool, is %v", f.DecimalPool) } - if !f.CommunityPool.IsZero() { - panic(fmt.Sprintf("CommunityPool must be zero in distribution fee pool as it should be specified in protocolpool, current value: %v", f.CommunityPool)) + // Negative values in CommunityPool represent an invalid state that should never occur + // We panic instead of returning an error to prevent the chain from starting with an invalid state + if f.CommunityPool.IsAnyNegative() { + panic(fmt.Sprintf("negative CommunityPool in distribution fee pool, is %v", f.CommunityPool)) } return nil