I just deployed an upgrade like this
const upgrade = await upgrades.upgradeProxy(contract, contractFactory);
However the .openzeppelin/unknown-chainId.json file did not get updated with the new transaction hash and abi for the upgrade. I am sure it was properly upgraded, I can call the new functions I added and observe the new correct behavior. This had happened to me once before in a testnet environment and I could never upgrade the contract again
What has happened? How can I ensure I can do another upgrade in the future? I have bookmarked the transaction in the block explorer for the upgrade.
Hi @nschwermann, the json file keeps records of the proxies and deployed implementation contracts. If you upgrade a proxy to an implementation contract that was already previously deployed, it would just reuse that implementation. Can you also verify that you are looking at the file for the correct network?
If you find that the proxy or implementation is not in the network file at all, can you share the network file, the proxy/implementation addresses, what commands you ran, and whether there were any error messages?
Note that you can use the forceImport function to import a previous deployed proxy, so that it can be upgraded with the plugins afterwards. This could help in this scenario.