throw error instead of return false in apply state change