FIO Chain Issue: Account Access

Discovery dateSeverityEstimated impactStatus
2024-06-12LOW21 accounts with combined FIO balance of ~6,700RESOLVED

Issue Description

On 2024-06-12 while attempting to run audit actions delivered in fio.contracts release 1.10 on 2024-06-10, an issue was discovered, which appears to be impacting at least 21 accounts. The issue causes a 500 exception to be returned anytime that account attempts to execute any action which modifies its balance, including sending and receiving FIO Tokens and any action which incurs a fee.

There are two flavors of this exception:

  • “assertion failure with message: cannot vote for producers and proxy at same time” - this is caused by a new assertion check with throws an exception if an account in voters table has both proxy set and also is voting on block producers. Such condition should not be possible and has been fixed in the previous release, but still exists in Mainnet. Accounts impacted: 4
  • “assertion failure with message: computegenerallockedtokens, remaining lock amount is larger than balance…” - this is caused by a new assertion check which throws an exception if during locked tokens balance computation the remaining lock balance is greater than actual account balance. Again, such condition should not be possible and has been fixed in the previous release, but still exists in Mainnet. Accounts impacted: 17

Accounts confirmed to be affected:

Account
wmg214fc5plp
epwsconyqsmw
quitalbpd3y1
gt1zu3gh5coq
1uuhyexivxmv
aqvsjqslli3i
xy5yaub3adur
h2spgt3ttoeh
5iadavastwas
15mvnhis3dbu
a3shl1xkl2tb
j2vrdzmlxyej
qjqrekkisr32
bwj2ro1bph5h
rbnuoevrkxvs
mpe5yleqxdp4
fkwv4gu3shp5
kb5juonh4ybw
psif4sjf3qou
r4agwov1n321
s5lla4zgeptf

Impact of Issue

👍

The token security or total token balance are not affected by this issue!

  • Identified account are unable to execute most on-chain actions, if that action involves an on-chain fee.
  • Identified account are unable to receive FIO Tokens, as the sender will receive a 500 exception when trying to send.
  • The proxy/voting balance audit utilizing functionality delivered in fio.contracts release 2.10 cannot be executed, as it requires that every account in voters table first receives 1 FIO to properly adjusted their voting balance. The audit will be re-ran after this issue is resolved.

Cause of Issue

The two new assertions were introduced in fio.contracts release 2.10 as a precautionary measure to ensure account integrity. This was done as part of a broader proxy/voting balance audits. It was not anticipated that such conditions exists and were not found during Testnet testing.

Issue Resolution

This issue was resolved in FIO Chain Release 2.11.