UUPS Proxies: Tutorial (Solidity + JavaScript)

What it means is that a subsequent implementation can omit the upgradeTo function, and this renders the UUPS proxy not upgradeable anymore.

This situation is not easily allowed by our UUPSUpgradeable contract as it will verify that upgradeability is preserved. But you can achieve it by first upgrading to a contract that contains a custom upgradeTo function (can be ERC1967Upgrade._upgradeTo), and then upgrading again to a contract that no longer has the upgradeTo function.