When Elector returns RecoverStakeError, Proxy.tolk may fail to forward the error (fee mode/value mismatch), and Pool.tolk also has an effectively empty RecoverStakeError handling path that does not clean validator round state. As a result, RoundData.users can remain non-empty indefinitely, causing round rotation logic to keep the pool closed and preventing round advancement, new stakes, and processing of pending withdrawals/deposits, leading to permanent fund lockup conditions.
The issue is not considered practical because it works as intended: RecoverStakeError intentionally does not modify the state, so its potential non-delivery is not an issue. A failed stake withdrawal does not remove the stake record.
When Elector returns
RecoverStakeError,Proxy.tolkmay fail to forward the error (fee mode/value mismatch), andPool.tolkalso has an effectively emptyRecoverStakeErrorhandling path that does not clean validator round state. As a result,RoundData.userscan remain non-empty indefinitely, causing round rotation logic to keep the pool closed and preventing round advancement, new stakes, and processing of pending withdrawals/deposits, leading to permanent fund lockup conditions.The issue is not considered practical because it works as intended:
RecoverStakeErrorintentionally does not modify the state, so its potential non-delivery is not an issue. A failed stake withdrawal does not remove the stake record.