Most common is running out of a resource (time or RAM), but those are typically easy to figure out and fix (slightly harder if the RAM constraint triggers weird errors in the tool, rather than a simple out-of-memory error). Harder are the things to don’t happen frequently (and are often hard to reproduce) — otherwise they would have been fixed after routine testing. One of the weirder things I have seen is a singularity container (Manta) that works on some systems inexplicably hangs (without any errors or warnings, until it times out) on others. Other (more common) hard things are when a tool gives a cryptic error, which is typically a bug in the tool, not necessarily the pipeline, and there is no obvious fix (sometimes changing parameters might help, sometimes a segfault can be avoided by filtering input data, but there is typically no deterministic way).