Yeah, that's a classic gotcha with parallel jobs. The fix is using the ${CI_NODE_INDEX} variable to give each parallel job its own artifact path:
test:
parallel: 10
artifacts:
reports:
junit: coverage/junit-${CI_NODE_INDEX}.xml
Then GitLab collects all of them. We hit this exact issue in production last year. The silent failure part is the worst, you just think your test coverage mysteriously dropped 50%.
Worth checking if you're also losing coverage reports the same way. If you're using multiple report formats, each needs its own naming strategy.