I have a process that essentially "copies" a milestone and it's children. I have code written using VB.NET that has been running successfully for some time, and I am attempting to convert the code base to C#. While re-creating the process, I am taking the opportunity to modernize a few things. My problem comes when creating the child tasks (which I do via a bulk/execute call. I can successfully copy the milestone and children the first time, but when I go to make another copy, the Milestone is copied but the children all fail with the error "Parent object (31.6333833603.23770113) of target object (8.-1.0) not found." I create the milestone using createAndRetrieve and pull back the External Id for the newly created milestone. I use that as the "parent" of the tasks. If I take the call generated by my code and execute it in Fiddler, I get the same result. If I wait several minutes (30+), and execute the exact code again in Fiddler, it works just fine and generates the children. Several things don't make sense to me:
1. Why can I create it the first time successfully (consistently), but not when I try to make another copy?
2. Why does the same code executed half an hour later work?
3. Why can I consistently copy the same Milestone to a different Project and have it work successfully when I never reference the GrandParent of the child tasks?
4. Why do I get back a valid External Id for the milestone that I can use in queries, but cannot use for creating the children?