SIVO
Troubleshooting

Operations

Troubleshooting

Quick diagnostic for the 20 most common SIVO issues — SIP registration, WebRTC audio, transcription, Salesforce, AI agents.

Updated:
troubleshootingsupportoperations

Calls and audio

Agent isn’t receiving calls

Common cause: agent status is On Break / Logged Out, or not in the right queue.

Check in order:

  1. Dashboard → Agents → your userstatus should be Available.
  2. Queue → must include the agent as member (Settings → Queues → view members).
  3. Softphone → SIP registration green (top-right icon).
  4. WebRTC → mic permission granted in the browser.

No audio in the call (one side or both)

Common cause: NAT/corporate firewall blocking RTP, or codec mismatch.

  • If PSTN caller can’t hear agent: check agent-side firewall, open outbound UDP RTP range.
  • If agent can’t hear caller: same other direction.
  • Negotiated codecs visible in backoffice CDR → “Call detail” → “Technical”.
  • WebRTC needs STUN. If your corporate net blocks stun.l.google.com:19302, ICE fails. Solution: use TURN (Enterprise).

Call drops on blind transfer

Common cause: destination doesn’t exist or is unavailable.

  • Verify destination extension is registered (Settings → Agents).
  • Filter Audit Log by event=transfer for the exact cause.
  • Attended (3-way) is more reliable when the destination is uncertain.

SIP registration

Softphone shows disconnected

  1. Logout/login (re-issues tokens).
  2. If it persists, browser DevTools → Console → search “SIP” / “WSS”.
  3. WSS on port 443 can be blocked by mis-configured HTTP/2 proxies. Use alt port or disable HTTP/2 at proxy.

SIP trunk in FAIL state

Common cause (90%): wrong CIDRs or bad credentials.

  • Settings → SIP trunks → “Allowed CIDRs” must contain the carrier’s full range.
  • Zadarma sends from 185.45.152.0/24 (not only 185.45.152.180).
  • Twilio: see IPs in Twilio dashboard → Elastic SIP Trunking → “IP ACL”.
  • After fixing, wait 30s and check status.

Live transcription

No transcript even though policy is active

Common cause: policy is active but the call didn’t reach bridge-agent-start or enter an ai_agent node.

If you believe it was answered yet not transcribed:

  1. Settings → Transcription policies → verify your policy applies (scope global vs DID vs queue vs agent).
  2. Settings → Transcription providers → STT API key must be valid (test button).
  3. Call CDR → “Technical” → look for transcription_* events. If transcription_started is missing, capture never started.

Transcription cuts mid-call

  • STT provider WebSocket can drop occasionally. We retry up to 3 times. If all fail, logged in transcription_errors of CDR.
  • If this happens systematically: possibly provider quota/rate-limit. Check provider dashboard.

auth_error with ElevenLabs Scribe

  • API key invalid or expired.
  • Verify configured model is scribe_v2_realtime (with _realtime suffix), not scribe_v2. Batch doesn’t support WebSocket streaming.

Salesforce SCV

”Connect with SIVO” button in the LWC doesn’t open OAuth

  • SF admin lacks External Client App install permission. Assign Profile/Permission Set with “Manage Connected Apps”.
  • Popup blocked by browser. Allow popups for your SF domain.

OAuth callback failed: invalid_grant

  • SIVO server clock and Salesforce clock differ by >5 min. Rare. Report to support.
  • External Client App deleted between OAuth open and callback. Reinstall package.

VoiceCall not created on inbound

  • SF ↔ SIVO user mapping incomplete. Settings → Salesforce → “User mappings”.
  • Agent who will answer isn’t mapped to an active SF User.
  • SCRT2 endpoint unreachable. Check status.salesforce.com.

Transcription doesn’t appear in Conversation

  • Verify SIVO → Settings → Salesforce → push_transcripts: true.
  • Telephony-Provider-Name: calltree header must be configured in SF Call Center (LWC does it automatically).
  • SOQL: SELECT Id, ConversationIdentifier FROM Conversation ORDER BY CreatedDate DESC LIMIT 5 should have recent rows.
  • SCRT2 errors → CDR → “Technical” → look for sf_push_error.

AI agents

Bot interrupts its own voice (loop)

Cause: AI agent’s VAD detects TTS playback as speech.

  • Advanced (Pro/Enterprise) → AI Agents → “Anti-echo cooldown” → bump to 400-500ms if your hardware or environment is noisy.
  • Ensure caller isn’t on speakerphone close to the mic.

Latency too high (>2s)

  • Switch LLM to Groq (TTFT ~120ms vs OpenAI 700+).
  • STT: Deepgram Nova-2 is fastest.
  • If using ElevenLabs TTS, try eleven_multilingual_v2 (WS) instead of eleven_v3 (HTTP).

LLM returns invalid JSON and bot says “didn’t catch that”

  • Review the prompt: must explicitly instruct JSON with response, action, variables fields.
  • Most reliable LLMs for structured JSON output: OpenAI GPT-4o-mini and Groq Llama 3.x with temperature ≤ 0.3.

Multi-tenant

I see other tenant’s data in my dashboard

This should not happen and is a critical security bug. If you see it:

  1. Close session immediately.
  2. Capture full URL, visible IDs, date/time.
  3. Email [email protected] with subject [SECURITY] Cross-tenant data leak.
  4. SIVO confirms within 2h and opens internal incident response.

PostgreSQL RLS is active on 23+ tables. If you see cross-tenant data, the RLS engine failed — immediate escalation.

Webhooks

My endpoint receives the event twice

Normal. Each webhook carries a unique X-Sivo-Event-Id. If you get the same ID twice (timeouts on your side), discard it. SIVO never changes the ID on retry.

My webhook returns 200 but data doesn’t arrive

  • Verify body is parseable JSON. Some frameworks consume the body if you don’t app.use(express.raw()) before your HMAC handler.
  • HMAC: signature is computed on the raw body, not parsed.

HMAC signature mismatch

  • Use the correct webhook_secret (the per-endpoint one, not a global).
  • Algorithm is sha256 (not sha1).
  • Comparator must be timing-safe (crypto.timingSafeEqual in Node).

Backoffice and dashboard

Page loads indefinitely

  • Stale browser cache. Hard refresh Ctrl+Shift+R (Win/Linux) / Cmd+Shift+R (Mac).
  • Socket.IO WebSocket disconnected. Network tab → WS → if red, reload.

Login says “invalid credentials” with correct password

  • 5 failed attempts in 15 min triggers temp lockout. Wait or request reset.
  • MFA enabled (admin/superadmin): missing TOTP code, not the password.

How to get support if none of this works

  1. Audit Log: backoffice — if incident, wait ETA.
  2. Audit log: backoffice → Audit → filter by affected user/resource.
  3. Email: [email protected] with:
    • Tenant slug.
    • Exact time of issue (timezone).
    • User/agent/queue/call ID if applicable.
    • Screenshot with DevTools Console + Network open.
  4. Enterprise: use your CSM direct channel.