I filed https://bz.mercurial-scm.org/show_bug.cgi?id=6147 against mercurial, but on the 3rd time it happened, I experimented and discovered that the culprit is the clang-format mercurial extension.
The situation: I have a stack of patches locally. I have landed some of them via Lando. Other changes have landed on top. I pull down mozilla-central and rebase my stack on top of it. At least one patch requires some conflict resolution (I don't know if this is a required condition or not.) The rebase seems to succeed, but it says that it created some orphans.
When I look at what is in my tree, I have the original upstream revision with all of my old patches on top of it, all of them obsoleted. I also have a messy stack of the same changes rebased on top of the new upstream tip, except for the old top patch (it's messy because sometimes it contains multiple patches with the same description in them, and some of them are empty.) Finally, there's a merge commit with the comment from my original top patch. Its parents are the tips of the two series of changesets described above -- one of them is obsolete, the other is not. Additionally, it contains the changes from the original top patch.
A detailed log of an example of this happening is attached to the above mercurial bug.
If I do the same thing with the clang-format extension disabled, the rebase works fine and I end up with a stack of rebased patches. (Though some of the patches are empty, containing only commit messages that include phabricator revision urls.)