# Update UUPS proxy contract

**URL:** <https://forum.openzeppelin.com/t/update-uups-proxy-contract/37960>\
**Category:** Upgrades\
**Created:** [September 28, 2023, 1:51pm UTC](https://forum.openzeppelin.com/t/update-uups-proxy-contract/37960 "2023-09-28T13:51:16Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![zakerik](https://avatars.discourse-cdn.com/v4/letter/z/ec9cab/32.png) [@zakerik](https://forum.openzeppelin.com/u/zakerik)\
**Post date:** [September 28, 2023, 1:51pm UTC](https://forum.openzeppelin.com/t/update-uups-proxy-contract/37960/1 "2023-09-28T13:51:16Z")

</div>

I have such proxy:

```auto
import { upgrades } from "hardhat";

proxy = await upgrades.deployProxy(
    MyContract,
    [
        address,
        flags,
    ],
    {
        initializer: "initialize",
        kind : "uups",
    }
)

```

And such contract:

```auto
contract MyContract is UUPSUpgradeable, AccessControlUpgradeable {
    function initialize(
        address streamOwner,
        uint256 _flags,
    ) external initializer {
        __AdminControlled_init(_flags);
    }

    function __AdminControlled_init(uint256 _flags) internal {
        __UUPSUpgradeable_init();
        __AccessControl_init();
        paused = _flags;
    }

    function _authorizeUpgrade(address)
        internal
        override
        onlyRole(DEFAULT_ADMIN_ROLE)
    {}
}

```

I am exploring the possibility of updating the proxy contract itself. From my research, it seems that this is not feasible, and the only alternative is to deploy a new proxy contract and migrate the state to it. Can anyone confirm if this understanding is correct or provide any alternative solutions or insights? Your assistance would be greatly appreciated. Thank you!

---

<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:** [September 28, 2023, 5:26pm UTC](https://forum.openzeppelin.com/t/update-uups-proxy-contract/37960/2 "2023-09-28T17:26:45Z")

</div>

That is correct. You can upgrade your implementation contract `MyContract` using the proxy, but you cannot upgrade the proxy contract code itself (which is `ERC1967Proxy.sol` in the case of UUPS).
