The intent is that a Trap captures any failure in a named branch. Branch names are inherited from upstream pipes.
if you can supply a test case, we can fix the issue, forcing a failure if writing to a trap fails. sounds like the Exception is being wrapped passed fully up the chain to cause the task to fail.
in theory, you should be using a tap that has the least brittleness, Hfs and writing as simple text files, which typically punt to #toString if the type isn’t recognized. making writes safe.
making trap writes less robust (writing to a JDBCTap or something) is going to be problematic.