An account roll may be impossible if the vault is already at the maximum borrow capacity.
One of the actions allowed in Notional Strategy Vaults is to roll an account's maturity to a later one by borrowing from a later maturity and repaying that into the debt of the earlier maturity.\\nHowever, this could cause an issue if the vault is at maximum capacity at the time of the roll. When an account performs this type of roll, the new borrow would have to be more than the existing debt simply because it has to at least cover the existing debt and pay for the borrow fees that get added on every new borrow. Since the whole vault was already at max borrow capacity before with the old, smaller borrow, this process would revert at the end after the new borrow as well once the process gets to `VaultAccount.updateAccountfCash` and VaultConfiguration.updateUsedBorrowCapacity:\\n```\\nfunction updateUsedBorrowCapacity(\\n    address vault,\\n    uint16 currencyId,\\n    int256 netfCash\\n) internal returns (int256 totalUsedBorrowCapacity) {\\n    VaultBorrowCapacityStorage storage cap = LibStorage.getVaultBorrowCapacity()[vault][currencyId];\\n\\n    // Update the total used borrow capacity, when borrowing this number will increase (netfCash < 0),\\n    // when lending this number will decrease (netfCash > 0).\\n    totalUsedBorrowCapacity = int256(uint256(cap.totalUsedBorrowCapacity)).sub(netfCash);\\n    if (netfCash < 0) {\\n        // Always allow lending to reduce the total used borrow capacity to satisfy the case when the max borrow\\n        // capacity has been reduced by governance below the totalUsedBorrowCapacity. When borrowing, it cannot\\n        // go past the limit.\\n        require(totalUsedBorrowCapacity <= int256(uint256(cap.maxBorrowCapacity)), "Max Capacity");\\n```\\n\\nThe result is that users won't able to roll while the vault is at max capacity. However, users may exit some part of their position to reduce their borrow, thereby reducing the overall vault borrow capacity, and then could execute the roll. A bigger problem would occur if the vault configuration got updated to massively reduce the borrow capacity, which would force users to exit their position more significantly with likely a much smaller chance at being able to roll.
Document this case so that users can realise that rolling may not always be an option. Perhaps consider adding ways where users can pay a small deposit, like on `enterVault`, to offset the additional difference in borrows and pay for fees so they can remain with essentially the same size position within Notional.
```\\nfunction updateUsedBorrowCapacity(\\n    address vault,\\n    uint16 currencyId,\\n    int256 netfCash\\n) internal returns (int256 totalUsedBorrowCapacity) {\\n    VaultBorrowCapacityStorage storage cap = LibStorage.getVaultBorrowCapacity()[vault][currencyId];\\n\\n    // Update the total used borrow capacity, when borrowing this number will increase (netfCash < 0),\\n    // when lending this number will decrease (netfCash > 0).\\n    totalUsedBorrowCapacity = int256(uint256(cap.totalUsedBorrowCapacity)).sub(netfCash);\\n    if (netfCash < 0) {\\n        // Always allow lending to reduce the total used borrow capacity to satisfy the case when the max borrow\\n        // capacity has been reduced by governance below the totalUsedBorrowCapacity. When borrowing, it cannot\\n        // go past the limit.\\n        require(totalUsedBorrowCapacity <= int256(uint256(cap.maxBorrowCapacity)), "Max Capacity");\\n```\\n