If a new param is an invalid JSON string, or the type doesn't match the define one, the protocol just accepts without changing the state. The bug is this line doesn't respect the returned error.
Ideally we should fix this on protocol side. Given that this product is maintenance mode, however, my suggestion is to add some check on client side to prevent it from submitting a tx with an invalid param value.
If a new param is an invalid JSON string, or the type doesn't match the define one, the protocol just accepts without changing the state. The bug is this line doesn't respect the returned error.
https://github.com/pokt-network/pocket-core/blob/003a9593047ad625b000fb85eb1fb7c10904bf73/x/gov/keeper/subspace.go#L216
Ideally we should fix this on protocol side. Given that this product is maintenance mode, however, my suggestion is to add some check on client side to prevent it from submitting a tx with an invalid param value.