That sounds like a bug in those other plugins or perhaps in WordPress itself.
flush_rewrite_rules()
re-builds the rewrite rules and — if it’s a hard flush (which is the default) — also updates the .htaccess
file. But: It only updates the rules inside the # BEGIN WordPress
and # END WordPress
markers. Other plugins shouldn’t add their rules inside this block.
To sum up:
- Many plugins flush rewrite rules on plugin (de)activation, it’s the way we need to do it.
- Other plugins shouldn’t interfere with the core rewrite rules
- The problem has to be elsewhere
I’ll mark this topic as resolved, but will open an issue about doing a soft flush on GitHub. It’s not really our fault, but we want a great new-user experience after all.