I just had a weird experience and wanted to know if anyone else has every experienced it or knew what is happening in the back. I’m on public cloud and have a function inside a function library. I made an update to the function, promoted, and for some reason the change saved but the output when called via postman was if the change wasn’t made. I then deleted the function to test and I was still able to call it! and it still returned the old pre-change response. Almost like the server was caching the entirety of the function somehow. The only thing that fixed it was restarting the app server which seemingly fixed it. Now the function takes updates fine. Anyone know what’s going on? I don’t have much knowledge of how epicor handles it’s kinetic caching of things like this. Thanks.
This is a known issue that has been reported to Epicor, the App Server restart is their suggested workaround, the last I heard (a few months ago) they had not been able to track down a cause for this.
I was able to replicate it with customer service on a call, on their environment, even.
In one extreme case, I know of a user who had to do this every single time a function was modified.
Can you imagine?
Absolutely miserable, especially since there’s no indication the function is in this messed up state if the change isn’t reflected in any output. Thanks for the info both of you.
Actually one last thing. Given you were able to replicate it for them, does that mean you know of a certain set of conditions that always leads to this broken state?
No… replicated the symptom but did not find a deterministic cause, unfortunately.
Just curious. Did you try copying out the function code (so you don’t lose it), then deleting the function. Then adding the function? Maybe that might work?
I can’t recall what the result was exactly there, but that didnt work either.
The result was one of:
- didn’t show in rest help at all and 404’d
- showed up and worked, but any attempt at editing the signature/code resulted in the same “stuck and can’t edit it” mode
You could put a version number in your code and log it. ![]()
If you want to get fancy, you could use keep expected versions in a table and throw an error when they don’t match. ![]()
You shouldn’t have to do this but a little observability in the meantime might help…
I’m on 2025.2.20 on prem and also had this happen today. Hopefully not a regular thing because I had a developer waste a lot of time trying to figure out what was going on.