The Add Spatial Join tool is great for temporarily (or permanently) joining fields from one layer to another based on spatial relationship. The output joined fields have the name {LayerName}_AddSpatialJoin.{FieldName}, unless you run this tool more than once! After the first run, it appends a counter so the output field names are ever changing to {LayerName}_AddSpatialJoin_1.{FieldName}, {LayerName}_AddSpatialJoin_2.{FieldName}, {LayerName}_AddSpatialJoin_3.{FieldName}, and so on. This makes the tool unusable in scripts or models.
I have tried to remove all joins, clear memory (I am using the memory workspace, so covering my bases), completely kill any ArcGIS Pro or Python instance, but this continues to be a problem. I would love to use this tool over Spatial Join + extra steps.
Please make it so the output field names follow the same format, no matter how many times it is run. The only time the additional index makes sense is if you run multiple joins on a layer, especially if the joined tables share a table name.