X_HIVE_EMPTY
Means
a hive() split into zero members, so the fan-out ran nothing
Typical cause
split() returned an empty list — usually a query behind it that matched no rows. Refused rather than returned, because 0 ok, 0 failed, 0 skipped reads identically for "there was genuinely nothing to do" and "the source query came back empty and nobody noticed", and only the call site can tell them apart. A hive whose empty case is legitimate says so by not being called
Fix
return at least one member input from the hive's split(), or guard the call site — if (postIds.length > 0) await summariseBacklog({ postIds }, { ctx })