I spent hours this week helping student after student after student with all kinds of issues with spatial joins. One is related to the way Esri has redone the Field Mapping interface.
When doing, say, a spatial join, you have target features and join features. A field map is generated when you add layers to these parameters.
Now, if you made a mistake (as students and professionals alike often do), need to change a layer, or you've pulled up the tool from GP History, you instantly face problems. On replacing one of the layers, the field mapping DOES NOT UPDATE. It retains the field schema of the first layers you put in there. This is easy to miss because 1) the field mapping area is collapsed by default (something I wish would change), and 2) the field mapping area is very tiny. It does not expand to fill the height of the pane, making large layers overly cumbersome to deal with. If you hit Run, your output is totally corrupted -- fields from layers you weren't even joining appearing in your table.
Ideally, the default field mapping would reflect the layers I'm actually inputting into the tool -- especially if I'm not touching a thing. If I recall, it used to work this way; I'm not sure who this new interface serves but it's certainly not me nor my students.