Given an artifact you want to move to another tracker, and given your Tuleap instance is configured to perform asynchronous actions (Redis is configured), then the move action will finish the deletion action after recreating the artifact in the new trackers, which means lose of data like the global rank.
In the move action, even if asynchronous actions is configured, the deletion must be done synchronously to avoid data lose.
Move an artifact from one tracker to another means:
- export the artifact to XML
- delete the artifact
- import the artifact export at step 1
When the platform is configured to have async jobs, delete is automagically done async so we have:
- (sync) export the artifact to XML
- (async) delete the artifact
- (sync) import the artifact export at step 1
When things go wrong, the async is still being processed while step 3 started, that means that random data can be deleted in the newly created artifact, like the global rank.
As move must be done "in real time" for the end user, the proposed solution is to force delete to be in synchronous mode, even on async platforms so all steps are performed in the logical sequence.