I ran into this with Python and Command cases, where the meat of what's occurring happens outside of Alteryx's jurisdiction, and it thinks it's done before it really is.
Adding a browse as suggested works, but only in Designer. However, when posted to Gallery (which implicitly disables browses), once again, it would end the iterations early. It really, really needs the output stream to be used.
Based on what I could find, the options were:
a) Generate dummy output to satisfy it (invites trampling or race condition)
b) Modify all contributing macros (several in overall process) to not have an output stream (rather not make two versions of each macro)
But I found a way to trick it. I created a simple standard macro with an input stream (template = single column "Any Field"), a count records, and browse.
Placed on the output streams where I didn't want to do anything with the output, this was enough to trick it into still going.
Guts of the macro:
Guts of macro
Calling the macro:
Attaching to output stream I don't care about
Someone more versed than me can tell me a more stripped down version of what I did that would still work (I ran out of fuse a long time ago and stopped at "working").