Skip to main content

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 the pending 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 pending while 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/stats returns per-queue backlog, oldest_wait, sla_breach_count, agents_available, and virtual_holds. A queue with nonzero backlog and zero agents_available is a presence/skills issue; nonzero backlog with high sla_breach_count and a positive agents_available means eligible agents have no headroom under their per-channel cap; an empty backlog means 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 — the pending 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 renders open 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 as gated: 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