# Upgrades

**URL:** https://forum.openzeppelin.com/c/support/upgrades/35.md

[Latest](https://forum.openzeppelin.com/latest.md) · [Categories](https://forum.openzeppelin.com/categories.md) · [Tags](https://forum.openzeppelin.com/tags.md)

---

## [UUPS Upgrade Successful (event emitted) but Implementation Address Not Updating (BSC Mainnet, Hardhat)](https://forum.openzeppelin.com/t/uups-upgrade-successful-event-emitted-but-implementation-address-not-updating-bsc-mainnet-hardhat/45284)

<div class="topic-metadata">

**Author:** [@awwy](https://forum.openzeppelin.com/u/awwy)\
**Replies:** 3\
**Last updated:** [April 9, 2026, 3:23pm UTC](https://forum.openzeppelin.com/t/uups-upgrade-successful-event-emitted-but-implementation-address-not-updating-bsc-mainnet-hardhat/45284 "2026-04-09T15:23:20Z")

</div>

Hi everyone, I’m encountering an issue with my upgradeable contract on BSC mainnet using Hardhat and would appreciate any insights. Context Pattern: UUPS upgradeable contract Network: BSC Mainnet Tooling: Hardh…

---

## [Initial alpha release of Hardhat Upgrades plugin for Hardhat v3](https://forum.openzeppelin.com/t/initial-alpha-release-of-hardhat-upgrades-plugin-for-hardhat-v3/45248)

<div class="topic-metadata">

**Author:** [@ericglau](https://forum.openzeppelin.com/u/ericglau)\
**Replies:** 0\
**Last updated:** [March 2, 2026, 10:50pm UTC](https://forum.openzeppelin.com/t/initial-alpha-release-of-hardhat-upgrades-plugin-for-hardhat-v3/45248 "2026-03-02T22:50:27Z")

</div>

Hi everyone, we've published an initial alpha version of the Hardhat Upgrades plugin with Hardhat 3 support: @openzeppelin/hardhat-upgrades@4.0.0-alpha.0 This release includes: Hardhat 3 compatibility updates Usage do…

---

## [Compatibility/Support of old manifest formats](https://forum.openzeppelin.com/t/compatibility-support-of-old-manifest-formats/45117)

<div class="topic-metadata">

**Author:** [@Eduardo\_Vasques](https://forum.openzeppelin.com/u/Eduardo_Vasques)\
**Replies:** 2\
**Last updated:** [January 29, 2026, 10:28am UTC](https://forum.openzeppelin.com/t/compatibility-support-of-old-manifest-formats/45117 "2026-01-29T10:28:29Z")

</div>

I am trying to run upgrade on smart-contracts that were deployed still using the ProxyAdmin \<=v4 implementation. I still have my manifest file, from several years ago. I detect that there's a change on the information in…

---

## [How to get 'exact code' verification for OpenZeppelin UUPS proxy contracts?](https://forum.openzeppelin.com/t/how-to-get-exact-code-verification-for-openzeppelin-uups-proxy-contracts/45037)

<div class="topic-metadata">

**Author:** [@m-elkhamisy](https://forum.openzeppelin.com/u/m-elkhamisy)\
**Replies:** 1\
**Last updated:** [October 29, 2025, 5:43pm UTC](https://forum.openzeppelin.com/t/how-to-get-exact-code-verification-for-openzeppelin-uups-proxy-contracts/45037 "2025-10-29T17:43:03Z")

</div>

Is there any way to get the “exact code” tag at the proxy? I am using hardhat “2.26.0” with “hardhat-verify” "2.0.1" :1234: Code to reproduce import { HardhatUserConfig } from "hardhat/config"; import "@nomicfounda…

---

## [The upgrade function is used repeatedly with the current version of the smart contract as an argument for the new version, but instead, a new one should be deployed](https://forum.openzeppelin.com/t/the-upgrade-function-is-used-repeatedly-with-the-current-version-of-the-smart-contract-as-an-argument-for-the-new-version-but-instead-a-new-one-should-be-deployed/44188)

<div class="topic-metadata">

**Author:** [@Gleb\_Protasov](https://forum.openzeppelin.com/u/Gleb_Protasov)\
**Replies:** 2\
**Last updated:** [August 13, 2025, 3:53pm UTC](https://forum.openzeppelin.com/t/the-upgrade-function-is-used-repeatedly-with-the-current-version-of-the-smart-contract-as-an-argument-for-the-new-version-but-instead-a-new-one-should-be-deployed/44188 "2025-08-13T15:53:31Z")

</div>

I was using a proxy, and everything was working fine, but at some point during an upgrade, the plugin started calling the upgradeTo function with the old implementation as the argument. This makes further upgrades impos…

---

## [Failed to upgrade implementation of proxy using proxy admin](https://forum.openzeppelin.com/t/failed-to-upgrade-implementation-of-proxy-using-proxy-admin/44635)

<div class="topic-metadata">

**Author:** [@Fagun](https://forum.openzeppelin.com/u/Fagun)\
**Replies:** 1\
**Last updated:** [August 13, 2025, 3:30pm UTC](https://forum.openzeppelin.com/t/failed-to-upgrade-implementation-of-proxy-using-proxy-admin/44635 "2025-08-13T15:30:10Z")

</div>

Here is my contract code: // SPDX-License-Identifier: MIT pragma solidity =0.8.27; import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.so…

---

## [Deploy upgradable contract with hardhat-upgrades fails on mainnet](https://forum.openzeppelin.com/t/deploy-upgradable-contract-with-hardhat-upgrades-fails-on-mainnet/44747)

<div class="topic-metadata">

**Author:** [@Majd\_TL51](https://forum.openzeppelin.com/u/Majd_TL51)\
**Replies:** 2\
**Last updated:** [August 11, 2025, 7:32am UTC](https://forum.openzeppelin.com/t/deploy-upgradable-contract-with-hardhat-upgrades-fails-on-mainnet/44747 "2025-08-11T07:32:59Z")

</div>

Hello :slight\_smile: I’m using an upgradeable contract (uups) and want to deploy it with @openzeppelinopenzeppelin/hardhat-upgrades. It works correctly on Testnets (Sepolia, Amoy) and on my local Hardhat/Ganache network…

---

## [UUPS Timed out waiting for implementation contract deployment (docker)](https://forum.openzeppelin.com/t/uups-timed-out-waiting-for-implementation-contract-deployment-docker/44243)

<div class="topic-metadata">

**Author:** [@Denis\_Yakovenko](https://forum.openzeppelin.com/u/Denis_Yakovenko)\
**Replies:** 0\
**Last updated:** [June 2, 2025, 12:49pm UTC](https://forum.openzeppelin.com/t/uups-timed-out-waiting-for-implementation-contract-deployment-docker/44243 "2025-06-02T12:49:52Z")

</div>

Hello, everyone. I'm trying to deploy an UUPS contract (in docker environment using docker-compose) and encounter the timeout error: TransactionMinedTimeout \[Error\]: Timed out waiting for implementation contract deplo…

---

## [How to change the msg.sender in upgrade plugin?](https://forum.openzeppelin.com/t/how-to-change-the-msg-sender-in-upgrade-plugin/43856)

<div class="topic-metadata">

**Author:** [@Zartaj](https://forum.openzeppelin.com/u/Zartaj)\
**Replies:** 2\
**Last updated:** [May 23, 2025, 11:11am UTC](https://forum.openzeppelin.com/t/how-to-change-the-msg-sender-in-upgrade-plugin/43856 "2025-05-23T11:11:20Z")

</div>

My implementation is UUPS compatible, with the upgrade check being: function \_authorizeUpgrade( address newImplementation ) internal override onlyRole(DEFAULT\_ADMIN\_ROLE) {} Inside my foundry test, I have t…

---

## [Possible bug with Missing initializer calls / order of initializers error](https://forum.openzeppelin.com/t/possible-bug-with-missing-initializer-calls-order-of-initializers-error/44077)

<div class="topic-metadata">

**Author:** [@matadorcro](https://forum.openzeppelin.com/u/matadorcro)\
**Replies:** 1\
**Last updated:** [May 16, 2025, 5:55pm UTC](https://forum.openzeppelin.com/t/possible-bug-with-missing-initializer-calls-order-of-initializers-error/44077 "2025-05-16T17:55:18Z")

</div>

Hi, I am trying to deploy transparent upgradable proxy which is inheriting other contract Basically inherit tree is Proxy -\> ProxyBase -\> ProxySubBase -\> ACL, ERC4626Upgradable There are 2 problems: Validation of in…

---

## [Potential false positive "Missing initializer calls for one or more parent contracts"](https://forum.openzeppelin.com/t/potential-false-positive-missing-initializer-calls-for-one-or-more-parent-contracts/43911)

<div class="topic-metadata">

**Author:** [@Heuristik](https://forum.openzeppelin.com/u/Heuristik)\
**Replies:** 2\
**Last updated:** [April 24, 2025, 7:03am UTC](https://forum.openzeppelin.com/t/potential-false-positive-missing-initializer-calls-for-one-or-more-parent-contracts/43911 "2025-04-24T07:03:33Z")

</div>

:1234: Code to reproduce I think I've handled the initializer calls for my upgradeable ERC20 token contract correctly. // SPDX-License-Identifier: MIT pragma solidity 0.8.28; import {UUPSUpgradeable} from "@openzeppeli…

---

## [Adding \_disableInitializers() at the end of the initialize method causes a "ProviderError: execution reverted" error when deploying the UUPS proxy and logic contract using hre.upgrades.deployProxy](https://forum.openzeppelin.com/t/adding-disableinitializers-at-the-end-of-the-initialize-method-causes-a-providererror-execution-reverted-error-when-deploying-the-uups-proxy-and-logic-contract-using-hre-upgrades-deployproxy/43893)

<div class="topic-metadata">

**Author:** [@zhangbi1012](https://forum.openzeppelin.com/u/zhangbi1012)\
**Replies:** 10\
**Last updated:** [April 24, 2025, 12:46am UTC](https://forum.openzeppelin.com/t/adding-disableinitializers-at-the-end-of-the-initialize-method-causes-a-providererror-execution-reverted-error-when-deploying-the-uups-proxy-and-logic-contract-using-hre-upgrades-deployproxy/43893 "2025-04-24T00:46:16Z")

</div>

Adding \_disableInitializers() at the end of the initialize method causes a "ProviderError: execution reverted" error when deploying the UUPS proxy and logic contract using hre.upgrades.deployProxy. I’m not sure if my imp…

---

## [The Upgrades plugin does not allow the execution of the constructor](https://forum.openzeppelin.com/t/the-upgrades-plugin-does-not-allow-the-execution-of-the-constructor/43577)

<div class="topic-metadata">

**Author:** [@tolele666](https://forum.openzeppelin.com/u/tolele666)\
**Replies:** 5\
**Last updated:** [March 18, 2025, 1:57am UTC](https://forum.openzeppelin.com/t/the-upgrades-plugin-does-not-allow-the-execution-of-the-constructor/43577 "2025-03-18T01:57:27Z")

</div>

I am aware of this warning: https://docs.openzeppelin.com/upgrades-plugins/proxies#the-constructor-caveat But I still want to define immutable variables and initialize them through the constructor. The purpose is to red…

---

## [New variables should be placed after all existing inherited variables](https://forum.openzeppelin.com/t/new-variables-should-be-placed-after-all-existing-inherited-variables/43508)

<div class="topic-metadata">

**Author:** [@hitesh\_hetfield](https://forum.openzeppelin.com/u/hitesh_hetfield)\
**Replies:** 4\
**Last updated:** [March 11, 2025, 4:42am UTC](https://forum.openzeppelin.com/t/new-variables-should-be-placed-after-all-existing-inherited-variables/43508 "2025-03-11T04:42:11Z")

</div>

Hello, I'm using UUPS method to deploy a v2 of a contract. Brief: I declared a couple state variables in v1 and forgot to initialize value for one of them (commissionPercent) (PFA Snippet) Now when trying to deplo…

---

## [Wrong indication of incompatible layout after upgrade](https://forum.openzeppelin.com/t/wrong-indication-of-incompatible-layout-after-upgrade/43335)

<div class="topic-metadata">

**Author:** [@matadorcro](https://forum.openzeppelin.com/u/matadorcro)\
**Replies:** 6\
**Last updated:** [February 28, 2025, 3:12pm UTC](https://forum.openzeppelin.com/t/wrong-indication-of-incompatible-layout-after-upgrade/43335 "2025-02-28T15:12:28Z")

</div>

Hi, I have situation like below, so I have layout: uint256 Data (struct) I want to add to Data struct at the end, additional variable uint256 data3 Running this with upgrades raises error that layout is not compatib…

---

## [Verifying TransparentUpgradeableProxy v 4.5 on Ethereum mainnet](https://forum.openzeppelin.com/t/verifying-transparentupgradeableproxy-v-4-5-on-ethereum-mainnet/27258)

<div class="topic-metadata">

**Author:** [@amr\_shaban](https://forum.openzeppelin.com/u/amr_shaban)\
**Replies:** 10\
**Last updated:** [February 18, 2025, 4:54am UTC](https://forum.openzeppelin.com/t/verifying-transparentupgradeableproxy-v-4-5-on-ethereum-mainnet/27258 "2025-02-18T04:54:56Z")

</div>

I have deployed new contract using TransparentUpgradeableProxy to mainnet and here is the address of proxy 0x6f2bF9922079F07c18Dc6184dA0A1780f047575c implementation address (verified on etherscan) 0xdd86c052fc6f1e68b…

---

## [Trying to upgrade a already deployed proxy contact on etherscan](https://forum.openzeppelin.com/t/trying-to-upgrade-a-already-deployed-proxy-contact-on-etherscan/40759)

<div class="topic-metadata">

**Author:** [@Furkan\_Sezal](https://forum.openzeppelin.com/u/Furkan_Sezal)\
**Replies:** 7\
**Last updated:** [February 18, 2025, 4:52am UTC](https://forum.openzeppelin.com/t/trying-to-upgrade-a-already-deployed-proxy-contact-on-etherscan/40759 "2025-02-18T04:52:20Z")

</div>

Hi, I am trying to verify my transparent proxy contract. I successfully verified the implementation contract. But having problems when trying to verify the proxy. I use create3factory to deploy the contracts. I am gettin…

---

## [prepareUpgrade with upgradeAndCall to upgrade proxy](https://forum.openzeppelin.com/t/prepareupgrade-with-upgradeandcall-to-upgrade-proxy/42787)

<div class="topic-metadata">

**Author:** [@matadorcro](https://forum.openzeppelin.com/u/matadorcro)\
**Replies:** 1\
**Last updated:** [January 8, 2025, 3:37pm UTC](https://forum.openzeppelin.com/t/prepareupgrade-with-upgradeandcall-to-upgrade-proxy/42787 "2025-01-08T15:37:58Z")

</div>

Hi using transparent proxy, and for example does upgrades plugin support upgrading to new implementation which is already deployed and address is known. I do not know if upgrades.prepareUpgrades is for this use-case? So …

---

## [Transparent proxy upgrade with timelock](https://forum.openzeppelin.com/t/transparent-proxy-upgrade-with-timelock/42743)

<div class="topic-metadata">

**Author:** [@matadorcro](https://forum.openzeppelin.com/u/matadorcro)\
**Replies:** 3\
**Last updated:** [January 2, 2025, 4:57pm UTC](https://forum.openzeppelin.com/t/transparent-proxy-upgrade-with-timelock/42743 "2025-01-02T16:57:40Z")

</div>

Hi, looking at the TransparentUpgradableProxy contract which is used to build transparent proxy pattern I see it creates ProxyAdmin contract by default which is used for admin interface towards proxy. My question is, is …

---

## [\`upgrades.deployProxy\` hangs indefinitely on \`hh coverage\`](https://forum.openzeppelin.com/t/upgrades-deployproxy-hangs-indefinitely-on-hh-coverage/27001)

<div class="topic-metadata">

**Author:** [@dtp5](https://forum.openzeppelin.com/u/dtp5)\
**Replies:** 6\
**Last updated:** [December 26, 2024, 1:18pm UTC](https://forum.openzeppelin.com/t/upgrades-deployproxy-hangs-indefinitely-on-hh-coverage/27001 "2024-12-26T13:18:48Z")

</div>

upgrades.deployProxy works as expected on npx hardhat test (or hh test), but hangs indefinitely in my project on hh coverage until the test fails with: Error: Timed out waiting for implementation contract deployment to …

---

## [Get OwnableUnauthorizedAccount when upgrade the transparent proxy](https://forum.openzeppelin.com/t/get-ownableunauthorizedaccount-when-upgrade-the-transparent-proxy/42732)

<div class="topic-metadata">

**Author:** [@Truth\_Asu](https://forum.openzeppelin.com/u/Truth_Asu)\
**Replies:** 3\
**Last updated:** [December 26, 2024, 3:11am UTC](https://forum.openzeppelin.com/t/get-ownableunauthorizedaccount-when-upgrade-the-transparent-proxy/42732 "2024-12-26T03:11:39Z")

</div>

I get an anvil blockchain to deploy my contracts and use the address anvil provide to set the owner of my contract.But it get OwnableUnauthorizedAccount(my TokenUpdate contract address) Its confusing that I set a msg.se…

---

## [Storage collision non-upgradable child and upgr. parent](https://forum.openzeppelin.com/t/storage-collision-non-upgradable-child-and-upgr-parent/42686)

<div class="topic-metadata">

**Author:** [@matadorcro](https://forum.openzeppelin.com/u/matadorcro)\
**Replies:** 1\
**Last updated:** [December 21, 2024, 3:36am UTC](https://forum.openzeppelin.com/t/storage-collision-non-upgradable-child-and-upgr-parent/42686 "2024-12-21T03:36:32Z")

</div>

Hi, I am wondering if there is any implication in using Initializable contarct with erc7201 storage layout as parent for child contract which is not proxy. Why am I asking is because I have situation where I would like t…

---

## [What does \`\_disableInitializers();\` function mean?](https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730)

<div class="topic-metadata">

**Author:** [@migbash](https://forum.openzeppelin.com/u/migbash)\
**Replies:** 22\
**Last updated:** [November 22, 2024, 2:21pm UTC](https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730 "2024-11-22T14:21:07Z")

</div>

I couldn't find anywhere the meaning of the use of the \_disableInitializers(); for the upgradeability aspect of an ERC-20 token creation... what does it mean ? Also, why does the OpenZeppelin Documentation says to d…

---

## [\_\_gap isn't necessary in new OZ implementations?](https://forum.openzeppelin.com/t/gap-isnt-necessary-in-new-oz-implementations/42150)

<div class="topic-metadata">

**Author:** [@matadorcro](https://forum.openzeppelin.com/u/matadorcro)\
**Replies:** 3\
**Last updated:** [November 22, 2024, 1:31pm UTC](https://forum.openzeppelin.com/t/gap-isnt-necessary-in-new-oz-implementations/42150 "2024-11-22T13:31:46Z")

</div>

Hi, using OZ for a while now and I notice in new version of upgradable contracts \_\_gap variable is removed and instead I see you are using struct which is holding storage variables. Struct slot position I see it is deter…

---

## [Contract name format for Foundry Upgrades](https://forum.openzeppelin.com/t/contract-name-format-for-foundry-upgrades/42247)

<div class="topic-metadata">

**Author:** [@Zartaj](https://forum.openzeppelin.com/u/Zartaj)\
**Replies:** 1\
**Last updated:** [November 21, 2024, 4:38pm UTC](https://forum.openzeppelin.com/t/contract-name-format-for-foundry-upgrades/42247 "2024-11-21T16:38:26Z")

</div>

As per the docs we need to pass the file name when calling deployTransparentProxy. The problem is what happens when the contract name is different from the file name. For example: If MyContract.sol contains the cont…

---

## [Error when runnning upgrade safety validation](https://forum.openzeppelin.com/t/error-when-runnning-upgrade-safety-validation/42250)

<div class="topic-metadata">

**Author:** [@Claudia\_Barcelo](https://forum.openzeppelin.com/u/Claudia_Barcelo)\
**Replies:** 3\
**Last updated:** [November 21, 2024, 4:36pm UTC](https://forum.openzeppelin.com/t/error-when-runnning-upgrade-safety-validation/42250 "2024-11-21T16:36:05Z")

</div>

I have upgrade safety validation tests and it stopped working. I'm using openzeppelin-foundry-upgrades and openzeppelin/contracts-upgradeable version \`4.9.6. I carefully followed all the installation and configura…

---

## [Immutable ZkEvm Testnet - Upgradeable Contract initialize not being called](https://forum.openzeppelin.com/t/immutable-zkevm-testnet-upgradeable-contract-initialize-not-being-called/42226)

<div class="topic-metadata">

**Author:** [@Bernardo\_Santos](https://forum.openzeppelin.com/u/Bernardo_Santos)\
**Replies:** 6\
**Last updated:** [November 21, 2024, 8:03am UTC](https://forum.openzeppelin.com/t/immutable-zkevm-testnet-upgradeable-contract-initialize-not-being-called/42226 "2024-11-21T08:03:18Z")

</div>

Trying to create upgradeable contracts using hardhat and OpenZeppelin Upgrades but, when calling either the deploy or upgrade script, initialize is not called (values show up as default when i check the contract in the e…

---

## [ImmutableX ZkEvm Upgradeable Contracts](https://forum.openzeppelin.com/t/immutablex-zkevm-upgradeable-contracts/42223)

<div class="topic-metadata">

**Author:** [@Bernardo\_Santos](https://forum.openzeppelin.com/u/Bernardo_Santos)\
**Replies:** 3\
**Last updated:** [November 20, 2024, 2:03pm UTC](https://forum.openzeppelin.com/t/immutablex-zkevm-upgradeable-contracts/42223 "2024-11-20T14:03:45Z")

</div>

Hey. Trying to deploy a basic wagering contract just for testing. Proxy shows up as a EOA Account for some reason. This is the script for the deploy: // SPDX-License-Identifier: Unlicense pragma solidity ^0.8.20; im…

---

## [Upgrades Plugin fails with the latest Hardhat ("contractFactory.attach is not a function")](https://forum.openzeppelin.com/t/upgrades-plugin-fails-with-the-latest-hardhat-contractfactory-attach-is-not-a-function/38162)

<div class="topic-metadata">

**Author:** [@Andrew\_777](https://forum.openzeppelin.com/u/Andrew_777)\
**Replies:** 2\
**Last updated:** [November 6, 2024, 5:30pm UTC](https://forum.openzeppelin.com/t/upgrades-plugin-fails-with-the-latest-hardhat-contractfactory-attach-is-not-a-function/38162 "2024-11-06T17:30:04Z")

</div>

I am trying to deploy the OpenZeppelin Upgrades as described in several tutorials, including your own (https://docs.openzeppelin.com/upgrades-plugins/1.x/hardhat-upgrades): // scripts/create-box.js const { ethers, upgra…

---

## [Issue with upgradeToAndCall for 1967 Proxy Address and UUPS Implementation: Revert Error on Upgrade Attempt"](https://forum.openzeppelin.com/t/issue-with-upgradetoandcall-for-1967-proxy-address-and-uups-implementation-revert-error-on-upgrade-attempt/41825)

<div class="topic-metadata">

**Author:** [@Saad\_Ahmed\_Siddiqui](https://forum.openzeppelin.com/u/Saad_Ahmed_Siddiqui)\
**Replies:** 1\
**Last updated:** [October 16, 2024, 3:29pm UTC](https://forum.openzeppelin.com/t/issue-with-upgradetoandcall-for-1967-proxy-address-and-uups-implementation-revert-error-on-upgrade-attempt/41825 "2024-10-16T15:29:00Z")

</div>

I am facing an issue when trying to upgrade my proxy contract (ERC1967) to a new UUPS implementation using the upgradeToAndCall function. I have successfully deployed a new implementation contract, and I’m using an admin…

[Next page](https://forum.openzeppelin.com/c/support/upgrades/35.md?page=1)
