Myself and colleagues have been going through JLC for about 7 years with no issues other than slightly smudged silkscreen layer on one board (out of probably thousands at this point)
Had some minor issues with PCBWay SMT assembly on a production run once, but that was only about 50 pieces (out of 1000) several years ago and was just sort of sloppy work on their end. Boards always looked and felt clean though. Have had better luck with JLC’s SMT assembly.
Avoid Seeed - lots of bad experiences with them but again that was in 2016~2017 so take with a grain of salt.