# What happens if the proxy contract already exist while deploying an upgradeable contract using the plugin?

**URL:** <https://forum.openzeppelin.com/t/what-happens-if-the-proxy-contract-already-exist-while-deploying-an-upgradeable-contract-using-the-plugin/40260>\
**Category:** Upgrades\
**Tags:** proxies\
**Created:** [April 18, 2024, 9:21am UTC](https://forum.openzeppelin.com/t/what-happens-if-the-proxy-contract-already-exist-while-deploying-an-upgradeable-contract-using-the-plugin/40260 "2024-04-18T09:21:11Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Pari\_Tomar](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/pari_tomar/32/20795_2.png) [@Pari\_Tomar](https://forum.openzeppelin.com/u/Pari_Tomar)\
**Post date:** [April 18, 2024, 9:21am UTC](https://forum.openzeppelin.com/t/what-happens-if-the-proxy-contract-already-exist-while-deploying-an-upgradeable-contract-using-the-plugin/40260/1 "2024-04-18T09:21:11Z")

</div>

When a contract is deployed using these plugins, three components are automatically created: Implementation, ProxyAdmin, and Proxy contract.

What happens if the proxy contract already exists?

---

<div class="post-metadata">

**Author:** ![ericglau](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/ericglau/32/15149_2.png) [@ericglau](https://forum.openzeppelin.com/u/ericglau)\
**Post date:** [April 18, 2024, 2:05pm UTC](https://forum.openzeppelin.com/t/what-happens-if-the-proxy-contract-already-exist-while-deploying-an-upgradeable-contract-using-the-plugin/40260/2 "2024-04-18T14:05:29Z")

</div>

It will deploy another set of those contracts. (In the case of Hardhat, the implementation won't be redeployed by default if it is the same as before)

---

<div class="post-metadata">

**Author:** ![hillhappy](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/hillhappy/32/21048_2.png) [@hillhappy](https://forum.openzeppelin.com/u/hillhappy)\
**Post date:** [June 21, 2024, 5:03am UTC](https://forum.openzeppelin.com/t/what-happens-if-the-proxy-contract-already-exist-while-deploying-an-upgradeable-contract-using-the-plugin/40260/3 "2024-06-21T05:03:34Z")

</div>

Hello,  
As per my knowledge proxy contract already exists when deploying a contract using these plugins, the deployment process will not create a new proxy contract. but in implementation and ProxyAdmin components may still updated or created as needed and the existing proxy contract will remain unchanged, ensuring continuity and preserving the existing proxy address.

---

<div class="post-metadata">

**Author:** ![ericglau](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/ericglau/32/15149_2.png) [@ericglau](https://forum.openzeppelin.com/u/ericglau)\
**Post date:** [June 21, 2024, 4:36pm UTC](https://forum.openzeppelin.com/t/what-happens-if-the-proxy-contract-already-exist-while-deploying-an-upgradeable-contract-using-the-plugin/40260/4 "2024-06-21T16:36:02Z")

</div>

This doesn't sound quite right. See [https://docs.openzeppelin.com/upgrades-plugins/1.x/#how-plugins-work](https://docs.openzeppelin.com/upgrades-plugins/1.x/#how-plugins-work) for a description of how the plugins work, and some of the differences between the Hardhat and Foundry plugins.
