# Never Ending Proposal

### Summary:

<https://code4rena.com/reports/2022-08-olympus#h-01-in-governancesol-it-might-be-impossible-to-activate-a-new-proposal-forever-after-failed-to-execute-the-previous-active-proposal> `activateProposal()` requires at least 20% endorsements [here](https://github.com/code-423n4/2022-08-olympus/blob/2a0b515012b4a40076f6eac487f7816aafb8724a/src/policies/Governance.sol#L216-L221), so it might be impossible to activate a new proposal forever if the current active proposal involves more than 80% of total votes.

POC:

1. `Proposal 1` was submitted and activated successfully.
2. Let’s assume 81% of the total votes voted for this proposal. `Yes = 47%`, `No = 34%`
3. This proposal can’t be executed for [this requirement](https://github.com/code-423n4/2022-08-olympus/blob/2a0b515012b4a40076f6eac487f7816aafb8724a/src/policies/Governance.sol#L268-L270) because `47% - 34% = 13% < 33%`.
4. Currently the contract contains more than 81% of total votes and users have at most 19% in total.
5. Also users can’t reclaim their votes among 81% while `Proposal 1` is active.
6. So even if a user who has 1% votes submits a new proposal, it’s impossible to activate because of this [require()](https://github.com/code-423n4/2022-08-olympus/blob/2a0b515012b4a40076f6eac487f7816aafb8724a/src/policies/Governance.sol#L216-L221).
7. So it’s impossible to delete `Proposal 1` from an active proposal and there won’t be other active proposal forever.

### Mitigation:

Add one more constant like `EXECUTION_EXPIRE = 2 weeks` so that voters can reclaim their votes after this period even if the proposal is active.

### TAGS: #voting #proposals


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://simones-organization-4.gitbook.io/hackbook-of-a-hacker/smart-contracts-security/code4rena/high-risk-findings/never-ending-proposal.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
