Correct Arity

It's probably not a race condition; it's probably a missing or messed up config file

In college, people seemed to complain "race condition" weirdly a lot, I think because the complaints were almost proud. Everyone knows race conditions are nasty, concurrency is hard, etc., so if you have these problems you must be really smart. Whereas if you're just segfaulting on a null pointer or something you might just be dumb. Of course your problem might really be concurrency, not discounting that, but I also feel like there's an incentive to complain about race conditions to show off how smart you are.

Working on legacy code, the problem turned out to be config files weirdly a lot. Idk if I can claim config files are an interesting problem; it might just be cope for spending hours banging away just to realize the problem is some random config file. But maybe for some applications a) if doing a lot of purely technical work, you might be reinventing half a framework or writing superfluous glue code (might not be, just saying), and b) interesting real world problems lead to code reuse in various messy contexts and fiddly configurations.

For this type of problem, "it's probably a missing or messed up config file" is probably a good knee jerk reaction. I would also like it if errors log a message that points back to the relevant config problem that causes them, which might be tricky if there are a lot of paths through a program, but if it is so tricky then it's that much nicer for the error message to save the person debugging the work of figuring out the config file's spooky action at a distance.