

As others have said, 100% a leak.
I would advise to stand on a chair or stepladder underneath the ceiling and check to see if it is still level. If you see an obvious deformation around the stain, this will be being caused by water pooling on top of the ceiling plasterboard. In which case, once the leak is sorted, you will likely need to drain the pooled water, cut out the damaged section, replace it, then replaster and repaint.
We had exactly the same issue in our last house. It was in a difficult to see spot hidden behind our kitchen cabinets. We only realised the severity of the issue when the ceiling boards gave way and fell on my head.





I have witnessed companies make this exact mistake before - they have a legacy system written in $LanguageA that they either cannot find developers to maintain, believe is badly written, or does not support some new feature they want to implement (or some combination of the three) - and decide to solve this by taking the existing codebase and porting/transpiling it to $LanguageB (which is more modern, performant, is easy to hire developers for, etc) - without actually rewriting or rearchitecting anything.
What they are actually doing is substituting one kind of tech debt for another. The existing code that was poorly written and/or not well understood is now just bad code written in a different language. Fixing bugs or implementing new features now takes just as long, if not longer to account for the idiosyncrasies of how the code was ported.
And now this is being done by AI with even less oversight than usual? Recipe for a maintenance disaster.