I have a SQL Server Agent job that runs every two minutes. That job invokes a stored procedure which looks to see if there are any batches ready to be uploaded (STATUS = 'COMPLETE'). If there is, it decides which environment to use, and runs a function to build dynamic SQL, which it then executes at the end.
I suspect that running the procedures are conflicting with one another and causing unexpected results. Especially if one of the runs takes longer than 2 minutes. Could this be the case?