Fixing function in Upgrades Setup

I wanted to check back if there are any known issues when fixing a bug inside a function of an upgrades setup. So, can we just fix any bugs inside existing functions, or are there known limitations?
function return type, name and parameters need to stay the same?
Thanks a lot!

:computer: Environment

:memo:Details

:1234: Code to reproduce

Name and parameters need to stay the same. You would need to make sure that the semantics of your changes are backwards compatible, or if you need to make breaking changes in order to fix a bug you should take a while to assess the impact that it will have on other contracts or off-chain programs that interact with it.

The return type could potentially be “enlarged” without breaking backwards compatibility, though I’ve never done this so I wouldn’t recommend changing the return type without thoroughly testing for the consequences first.

1 Like

Thanks a lot, that clears my question!