How do I fix a stuck deployment?

At times an entity (i.e. product/content item/etc.) can get stuck when doing a deployment. What can we do when this happens? Let's go over some key points around this process and we can then see what options we have when this happens.

The framework has a table called BLC_PROCESS_STATUS this table is used to keep track of the workflow of a change set along with the BLC_SNDBX_WRKFLW_EVENT.SETUP_STATUS column. The ProcessStatus is the process that will follow up and check the SETUP_STATUS(increments from 100, 200, etc.) to make sure a change set is followed through to completion. However, there are times where this process will end due to an unexpected error on the server. This will leave the entity "stuck" but the framework has a feature to allow users to auto-retry the process.

When promoting/approving an entity will briefly appear in a read-only state. This occurs so a user cannot make changes while the system finishes processing the changes across the required sandboxes (or pushing it to production).  It will look like this:

The workflow process is complex and goes through several steps as it pushes the changes to different sandboxes. When iterating through this process there are instances where something on the server happens unexpectedly (for example a server restart). If the workflow process does not complete then the entity can become 'stuck' and it will stay in the read-only state. To help with this Broadleaf has an auto-retry feature that picks up these unfinished deployments and completes them...but there are times when this does not happen correctly.

To address this Broadleaf also has a self-serve retry feature that can be used If a deployment is stuck. When this happens, you can go to the Pending & In-Progress Deployments and you will see a broken chain icon (see screenshot below). Clicking on it it will kickstart the process back up and let it finish.