Hello Josh,
It looks like you've reused the temporary ID in the same batch job.
Note that it's totally fine to use the same temporary IDs in different batch jobs.
Did you use some kinds of algorithms to map from the time stamp to negative numbers as temporary IDs?
We encourage to use just sequence number starting from -1.
Hope this help.
Best,