The totalCoverTokens is only updated when the policy is bought
The `totalCoverTokens` value represents the amount of collateral that needs to be locked in the policy book. It should be changed either by buying a new policy or when an old policy expires. The problem is that when the old policy expires, this value is not updated; it is only updated when someone buys a policy by calling the `_updateEpochsInfo` function:\\n```\\nfunction \\_updateEpochsInfo() internal {\\n  uint256 \\_totalEpochTime = block.timestamp.sub(epochStartTime);\\n  uint256 \\_countOfPassedEpoch = \\_totalEpochTime.div(epochDuration);\\n\\n  uint256 \\_lastEpochUpdate = currentEpochNumber;\\n  currentEpochNumber = \\_countOfPassedEpoch.add(1);\\n\\n  for (uint256 i = \\_lastEpochUpdate; i < currentEpochNumber; i++) {\\n    totalCoverTokens = totalCoverTokens.sub(epochAmounts[i]);\\n    delete epochAmounts[i];\\n  }\\n}\\n```\\n\\nUsers waiting to withdraw liquidity should wait for someone to buy the policy to update the `totalCoverTokens`.
Resolution\\nThe `updateEpochsInfo` function is now public and can be called by anyone.\\nMake sure it's possible to call the `_updateEpochsInfo` function without buying a new policy.
```\\nfunction \\_updateEpochsInfo() internal {\\n  uint256 \\_totalEpochTime = block.timestamp.sub(epochStartTime);\\n  uint256 \\_countOfPassedEpoch = \\_totalEpochTime.div(epochDuration);\\n\\n  uint256 \\_lastEpochUpdate = currentEpochNumber;\\n  currentEpochNumber = \\_countOfPassedEpoch.add(1);\\n\\n  for (uint256 i = \\_lastEpochUpdate; i < currentEpochNumber; i++) {\\n    totalCoverTokens = totalCoverTokens.sub(epochAmounts[i]);\\n    delete epochAmounts[i];\\n  }\\n}\\n```\\n