I've been told that ubiquitous activity chaining is a bad practice, but why is this the case? It seems to me that there are applications where activity chaining is necessary end to end, and indeed I've seen such applications function just fine.
Is it a performance concern, or more a contrast with clean code philosophy?
Thanks
Discussion posts and replies are publicly visible
It should also never be used after the last User Input task on a process because it is not necessary after that point.
For what it's worth, I've experienced multiple use cases where this is outright incorrect. The most obvious/important such use case, off the top of my head, is a Related Action on a record where the related action causes changes to the DB which affect the information shown on the record dashboard in question.
Sometimes you might notice that completing such a related action and returning to the record dashboard, you need to refresh the page once or twice before the updated information is displayed. If activity chaining is used after the user input task (perhaps only as far as the write to data store node(s)), this issue is mitigated quite well.
I'm of the opinion that designers should not be made to feel worried or guilty about using activity chaining when it is necessary for the UX - as long as they don't use it in places where it's not necessary like the other examples you've noted.