> For the complete documentation index, see [llms.txt](https://digitalsac.gitbook.io/digicalls/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://digitalsac.gitbook.io/digicalls/digicalls-sdk/referencia/solucao-de-problemas.md).

# Solução de problemas

### `/webrtc` 404 (“no such call”)

**Sintoma:** ao ligar, erro como `/api/sessions/.../calls/.../webrtc 404`.

**Causa comum:** a chamada foi criada no WhatsApp antes do navegador liberar o microfone / terminar o ICE.

**Correção:** use SDK/widget **≥ 0.3.4** (pede microfone antes de `POST /calls`).

### Sem áudio / ICE failed

**Sintoma:** chamada conecta visualmente mas mudo, ou WebRTC `failed`.

**Verificar:**

1. `GET /api/webrtc-config` retorna TURN?
2. Firewall bloqueia UDP?
3. No widget, aba **Diagnóstico → Testar STUN**.

**Ação:** configure `WACALLS_ICE_URLS` / TURN no servidor.

### SSE desconecta

O client reconecta com backoff (até 30s). Se cair frequentemente:

* Proxy/load balancer deve **suportar SSE** (sem buffer agressivo).
* Timeout de idle > 45s.

EventSource usa: `GET /api/events?token=dev_…`

### 503 not paired

Device não pareado. Escaneie QR:

```
GET /api/devices/{token}/qr
```

### 429 max concurrent calls

Limite de chamadas simultâneas por device — aguarde encerrar ou aumente limite (admin).

### 403 / 401

* Token inválido ou revogado.
* API key errada no provisionamento.

### Microfone não funciona

* Permissão negada no navegador.
* Chamada iniciada sem gesto do usuário.
* HTTPS obrigatório (exceto localhost).

### Chamada WABA sem áudio

Webhook Meta não configurado ou **App Secret** incorreto — assinatura rejeitada. Veja Webhook Meta (WABA).

### SIP + browser ao mesmo tempo

Inbound WhatsApp toca **SIP registrado** ou operador browser — primeiro a atender faz claim.

### Logs

Ative observabilidade no servidor (`/metrics`, logs struct). Para suporte, exporte relatório do widget (**Copiar relatório** na aba Diagnóstico).
