Occasionally, Team Development pushes can appear to be successful, but the Stage on the push/pull record is not set to Completed. The most common Stage in this scenario is Validating Scope Finished. Since the Stage is not complete, all other Team Development operations are blocked because it appears that the push is still in progress.

Use the following checklist to determine if this issue is occuring on your instance:

* The push record exists in the parent instance.
* The push record is not in a completed state.
* The push has finished processing:
* The associated workflow context is finished (not cancelled).
* The sys_mutex for team development is available.
* The related local update set is committed (the update set will have the same name as the push record).

Steps to Reproduce

No specific steps to reproduce are available, but the issue has typically been seen on systems where the parent is "busy" at the time the push is processed. This provides a small window of opportunity for the status to be overwritten by the workflow engine after the push has completed.


If your instance is running an affected version (see the Seen In list below), the steps below can be used to fix a push that is "stuck."

      1. Confirm that all push/pull versions associated to your push have a State of Push Committed.
      2. Verify that the team development workflow has finished.
        1. Navigate to Workflow > All Contexts.
        2. Find the Team Development Code Review workflow version with the ID that matches the name of your push.
        3. For the matching workflow context, see if the State is Finished.
        4. Do one of the following:
          • If the State is not Finished, keep waiting. Hopefully the push completes on its own. Do not perform any more steps.
          • If the State is Finished, continue with the steps below.
      3. After verifying that the workflow is Finished, confirm that the team_development mutex is available. 
        1. In the Application Navigator, type sys_mutex.list into the filter field.
        2. On the mutex list, filter on Name = team_development.
          • If no row is found, the team_development mutex is available.
          • If a row is returned and System ID=available, Acquired is empty, and Touched is empty, then the team_development mutex is available.
          • If the System ID is not available or the Acquired/Touched fields are not empty, then the mutex is not free.
        3. If team_development is available, continue with the steps below. If the mutex is not available, then the push is still in progress or there is a different issue occuring.
        4. Confirm that the related local update set for the push has a status of Completed.
          1. Navigate to Update Sets > Local Update Sets.
          2. Find the update set that matches the same name as your push.
          3. Confirm that the state of the update set is Committed.
      4. After confirming that the push was successful, finish the push using the commitVersions script below. Get the pushID by going to the push record and using the Copy sys_id action. If the script fails, check again to ensure all the pre-requisites are met.
      5. Navigate to the Team Development dashboard on the child should trigger the system to refresh the status of the push record on the child.
        The push status should now show Completed on both the parent and the child.


function commitVersions(pushID)
    var push = new SNC.PushAPI();
    var pStage = push.loadPushedVersions(pushID);
    if (pStage) {
        var current = new GlideRecord("sys_sync_history");
        current.setValue("stage", pStage);
        gs.print('Push is complete!');
    } else {
        gs.print('Load pushed versions failed.  Mutex might be grabbed again.');

Related Problem: PRB730569

Seen In

Geneva Patch 8 Hot Fix 1
Helsinki Patch 6 Hot Fix 1

Fixed In


Associated Community Threads

There is no data to report.

Article Information

Last Updated:2018-12-27 01:33:56