1. Purpose
Work through returned units that inspection could not assign an outcome to, give each one a final disposition, and stop the queue refilling. Sets out what hold actually means, which is rarely what the word suggests, and where the queue lives, which is not where anyone looks for it.
2. Scope
Covers reviewing and resolving units sitting on hold, from the hold queue and from an individual return. Inspection is covered in SWI-031 and the dispositions themselves in SWI-032. Writing the disposition rules that would prevent most holds is configuration work and is not stepped through here.
3. Roles & Responsibilities
Supervisor or operations lead: reviews each held unit and chooses its final disposition. Resolving requires a written reason and is attributable.
Inspection team: raises nothing deliberately. Holds arrive on their own.
Operations lead: owns the disposition rules, which is where a persistently full queue is actually fixed.
4. When you need this
Returns are sitting at Partially Completed and will not finish.
Units are on hold and it is not clear who is meant to act on them.
Every inspected item is landing on hold.
A held unit needs a decision and the queue cannot be found from the menu.
5. Key concept: hold is what happens when no rule matched, not a verdict on the item
What people assume | What actually happens |
|---|---|
An item on hold was flagged as suspect during inspection. | Usually it was not. Hold is the fallback the system applies when no disposition rule matched the item. Nothing about the item's condition need be unusual. |
A queue full of holds means a batch of bad stock. | It far more often means the rules do not cover what is coming back. An organisation with no disposition rules configured sends every single inspected unit to hold. |
The hold queue is reachable from the Returns menu. | It is not linked from anywhere in the app. It is reached by typing its address, or the unit can be resolved from its own return's detail page instead. |
The queue lists every unit currently on hold. | It lists holds on returns that have reached Processing or Partially Completed. A hold on a return where other units are still uninspected does not appear until the rest of that return has been inspected. |
Resolving a hold changes the disposition, and somebody executes it later. | Resolving executes it there and then. Choosing Restock puts stock back at that moment. |
A hold can be kept on hold with a note explaining why. | It cannot. Hold is not selectable as the outcome, so a different disposition has to be chosen to close the item. |
Resolving a hold costs nothing extra. | Where return fees are configured, resolving raises a hold resolved charge on top of the ordinary disposition charge for the same unit. |
6. Procedure — resolve the queue
Go to /dashboard/<organization-slug>/returns/hold. There is no menu entry, so this address is worth bookmarking.
Read the queue. Each row shows the RMA, SKU, product, grade, defect codes, inspection notes, warehouse and time in hold. Rows are ordered with the longest-held first.
Narrow to a single site with the warehouse filter where more than one warehouse is in play, and use Clear to go back to everything.
Work from the top. The oldest hold is the one most likely to be holding a return open.
Click Resolve on a row. The dialog repeats the product, grade, defect codes and inspection notes, which is enough to decide without opening the return.
Choose a New Disposition. Anything except hold is available, and the choice is final.
Write a Reason. It is required, it is stored against the unit, and it is what a later query about the decision will land on.
Click Resolve. The disposition executes immediately, and a Restock resolution moves stock at that moment.
Watch the row leave the queue and check the return's status. A return whose last outstanding unit was just resolved moves to Completed.
6A. Resolving from the return instead
A held unit can also be resolved from its own return's detail page, using the same dialog and with the same effect. That route is the practical one when the return is already open, or when the queue is not showing the unit because other units on that return have not been inspected yet.
Open the return, find the unit in the Inspection Results card, and resolve it there.
6B. Stopping the queue refilling
Resolving items one at a time treats the symptom. A queue that fills again every day means the disposition rules do not describe what is actually coming back.
Look at what the resolved items had in common, which is usually a grade, a return reason or a defect code, and write a rule covering it. Rules are evaluated in priority order and the first match wins, so a broad rule at a low priority is a reasonable safety net beneath the specific ones. Anything still not matched will continue to arrive here, which is the queue working as intended rather than failing.
7. Verification
The resolved row has left the queue and does not come back on a refresh.
The unit's disposition on the return now reads the chosen code and shows as executed.
The return's history records the change from hold to the chosen disposition, with the reason and who made it.
Where the resolution was Restock, the unit appears on the Inventory screen in the expected bin and available quantity has risen.
A return whose units are all now executed reads Completed rather than Partially Completed.
The queue count falls and, once rules are in place, stops climbing between checks.
8. Constraints and caveats
Full access to Orders governs resolving a hold. There is no separate returns permission.
The queue has no navigation entry anywhere in the app and is reachable only by address.
Only holds on returns at Processing or Partially Completed are listed. Holds on returns still being inspected are invisible here and must be handled from the return itself.
Archived returns are excluded from the queue entirely.
A unit must have been inspected, must still be on hold, and must not already have been executed. Any of those failing is refused.
Hold cannot be chosen as the final disposition, and a reason is mandatory.
Resolving executes immediately. There is no separate execution step afterwards and no undo.
A hold resolved to Restock always moves inventory. The Mark restocked option offered when executing dispositions normally is not available on this path.
A restocked unit follows the same placement rules as any other restock: the put-away location captured at inspection where there is one, otherwise the SKU's busiest bin in that warehouse, and no movement at all if the SKU has no bin there. See SWI-032.
Where return fees are configured, a resolution charges both a hold resolved fee and the ordinary disposition fee for that unit.
Time in hold is measured from when the unit was inspected, not from when the return arrived.
9. Worked example
An operations lead at a 3PL found sixty units on hold across a dozen returns, none of which would close.
What was observed | What it meant |
|---|---|
Held units carried grades A through D, with no pattern in condition. | The condition was not the trigger. A mixed spread is what falling through the rules looks like, not what bad stock looks like. |
The organisation had two disposition rules, both matching a return reason that had never been used. | This was the cause. Nothing matched, so everything fell to the fallback. |
Several returns sat at Partially Completed with every other unit executed. | The held units were the only thing keeping those returns open. |
The queue did not list the holds on three of the returns. | Those returns still had uninspected units, so they had not reached Processing. Their holds were resolvable only from the returns themselves. |
Time in hold on the oldest row read eleven days. | It was measured from inspection. The stock had been on the shelf, undecided, for that long. |
The lead resolved the queue from the top, then wrote a rule sending grades A and B to Restock and one sending C and D to Liquidate, with a low-priority catch-all beneath them. The queue emptied and stayed near zero.