'Contract is not upgradeable' for `upgrade` proposal

There's a problem to open the upgrade proposal generated by defender.proposeUpgrade(...) function.

  1. I created a GnosisSafe in the defender: 0x65E5cd5782842814a0Be37702Af0EE2A4f65288E.

  2. I created a NameRegistry contract which inherits the OwnableUpgradeable contract of @openzeeplin.
    And deployed the contract to the Mumbai testnet. Here are the addresses of our contract:
    Proxy: 0xC4F3fB5d4944846697A9054A9035DF7ddF36c02f
    ProxyAdmin: 0x550c24B5E73D48ea7e08706A1551BFb3e7DEfadc
    Implementation: 0x53C8943f4855E93C732f9036910035Cd3c6A12CC

After the contract deployed, we transferred the ownership of ProxyAdmin to the GnosisSafe we created at step 1.

  1. (Problem 1) Next, we're trying to import our contract in the defender and propose an upgrade using the Gnosis Safe.

The problem is that when we import this contract into defender, it's not detecting our contract as upgradeable. Therefore, we can't make an Upgrade proposal...

  1. (Problem 2)I could propose upgrade proposal by usint the defender.proposeUpgrade(...) script. Once generated, I can see it on the Defender page. Once I clicked that proposal, it shows error message of `Contract is not upgradeable.

P.S : Before, when I used the solidity version 0.8.9, all worked well. Recently, I upgraded it into 0.8.18.
Is this because of Solidity version and hardhat plugin?

Hi @Alex8909

Thanks for your report.

I have tried to import Contract 0xC4F3fB5d4944846697A9054A9035DF7ddF36c02f into Defender and it was recognisable as Upgradable contract and I was able to create Upgrade proposal via UI.

Can you try again to import 0xC4F3fB5d4944846697A9054A9035DF7ddF36c02f and verify behaviour?

I see that implementation address is changed in meantime to 0x726D853dC4e3fa88Ed6f983b57753Ab1C2d6A23C and that contract has used newer compiler version.

Best,
Zeljko