Runbook
Operational recovery and revert decoding
Use this page when a write call fails and you need to decide whether the problem is contract state, wallet role, missing approval, expired deadline, or stale local deployment data.
Common failures and what they really mean
| Message | Meaning | Recovery action |
|---|
Alliance: exceeds quota | Participant tried to deposit above their fixed share. | Use the remaining quota or `Fill Max` instead of guessing the amount. |
Alliance: not enough funds | Acquisition vote or buy was attempted before the alliance reached target funding. | Finish deposits first. |
Alliance: seller not owner | The seller address is wrong or NFT ownership changed after proposal. | Refresh owner state, rebuild proposal if needed, and regenerate seller approval page. |
Alliance: quorum not reached | Not enough weighted votes for acquisition, sale, or emergency action. | Collect more participant votes or check quorum configuration. |
Alliance: sale expired or Alliance: acquisition expired | Proposal deadline passed. | Reset the proposal and create a fresh one with a new deadline. |
Faucet: cooldown active | The same wallet claimed too recently. | Wait for cooldown or use a different test wallet. |
unsupported token | The ERC20 transfer delta did not match the requested amount. | Use a standard ERC20 without fee-on-transfer or rebase behavior. |
Fast operator checklist
- Confirm chain, token address, faucet address, and factory address are still correct after the latest node restart or redeploy.
- Check the alliance state before trying to interact. Funding, acquisition, and sale all happen in different states.
- Check the acting wallet role. Participant, seller, and buyer are not interchangeable.
- Check approvals: seller must approve NFT, buyer must approve FATK, participant must approve FATK deposits.
- Check deadlines: if the proposal expired, do not keep retrying execution.
- Check token units: if a broken alliance stores target price as raw integers, stop using it and deploy a new one.