Troubleshooting: inbox assignment stuck pending, and auto-close timing
A digital (non-voice) conversation crosses three tenant-owned surfaces between arrival and an agent: routing rules and digital queues decide who gets it, agent presence decides who is eligible, and auto-close decides when an idle thread closes. When the thread appears stuck — held in thepending lane, sitting open with no owner, or swept before anyone claimed it — the diagnosis is always one of a handful of causes on those four surfaces. This page groups the symptoms so you check the right control first.
Everything below is tenant-owned configuration. Nothing here touches carrier or provider behaviour — inbound routing and lifecycle decisions are your workspace’s own settings, evaluated on your workspace’s rows.
Verify the surface first
Two quick checks narrow the cause before you open the tables:- Split pending meaning. An inbound thread sitting in
pendingwhile you expect assignment is a routing/queue/presence issue — work the first table below. An outbound reply you composed as a gated agent that never reaches the customer is a supervisor-decision hold in the Pending replies queue — work that table instead. - Read the digital-queue stats.
GET /api/v1/inbox/digital-queues/statsreturns per-queuebacklog,oldest_wait,sla_breach_count,agents_available, andvirtual_holds. A queue with nonzerobacklogand zeroagents_availableis a presence/skills issue; nonzerobacklogwith highsla_breach_countand a positiveagents_availablemeans eligible agents have no headroom under their per-channel cap; an emptybacklogmeans the conversation never joined this queue — check routing rules and channel-match.
Inbound conversation holds in pending (never assigns)
A new inbound conversation starts unassigned and stays that way until routing rules or a digital queue place it. Every conversation this page handles was read as an inbound lifecycle issue — thepending state here is the inbox’s unassigned lane, distinct from an agent’s pending reply.
The routing priority dimension sits beside queues as a second evaluator. A broad rule with a low priority number shadows every specific rule below it, and a saved rule whose tag or segment condition references a vocabulary the workspace never defined matches silently-nothing. Inbox → Settings → Routing’s dry-run panel is the fastest arbiter — re-run it with a copy-pasted sample conversation.
Conversation opens but the claim never fires
Assignment can look correct on arrival yet never complete — the conversation rendersopen with an empty assignee, or holds in the queue’s waiting set past the SLA deadline. These causes are presence-side or election-side, not routing-side.
Auto-close closes too soon, or before a claim window fires
Auto-close is tenant-owned and ships off; when enabled, the sweep closes idle threads regardless of claims. These causes are mistakes in the idle-window or status-scope configuration, not a misfiring sweep.Pending-replies holds outbound text (supervisor gate)
When agents’ replies submit asgated: true and never reach the customer, the thread stays open with no outbound row — inbound routing and auto-close are bystanders to that. Work the Pending replies queue from a supervisor seat.
See also
- Pending replies — the supervisor queue that gates outbound replies
- Digital queues — skill-match, SLA, overflow, and live stats on the digital ACD
- Auto-close — tenant-owned idle-window configuration and the guardrails
- Routing rules — the priority-order auto-assign evaluator
- Agent presence lifecycle — the five states every assignment checks