Empty output error can be due to a definition query on something that changes due to the geoprocessing tool. In other words, if there are no longer any records that satisfy it.
I also turn off background geoprocessing, in every map, every time, unless it is needed. This usually causes a more generic 99999 error, though, not empty output. Really don't get why something so problematic as this is the default. Pretty much all tools that change an existing file will fail due to locking issues. I concur with turning off the indexing service too, because it eats up too much processing.
I run into this all the time and I don't know why this keeps happening. However, my solution is simple. Go into your environments and set the processing extent to "union of all inputs". That should take care of your problem.