Playbook de Incidentes
Procedimentos de resposta para problemas comuns.
Problemas de Conexão
Desconexão do WebSocket
Sintomas: conexão WebSocket perdida, nenhuma mensagem recebida
Ações:
- Implemente reconexão automática com backoff exponencial
- Consulte os endpoints REST para recuperar as atualizações perdidas
- Reinscreva-se em todos os canais após a reconexão
Prevenção: monitore o status da conexão e implemente uma lógica de reconexão robusta
Timeout da API
Sintomas: requisições REST expiram ou retornam erros 5xx
Ações:
- Tente novamente com backoff exponencial
- Verifique o endpoint de saúde:
GET /health - Reduza a taxa de requisições se o sistema estiver sobrecarregado
Prevenção: implemente throttling de requisições e circuit breakers
Problemas de Ordens
Alta Taxa de Rejeição
Sintomas: muitas ordens rejeitadas
Investigação:
- Registre
statusereasonde toda resposta de ordem e de toda mensagemorder_updatesdo WebSocket.GET /orders?wallet=...retorna as ordens abertas por padrão e não traz os motivos de rejeição - Revise a margem:
GET /portfolio?wallet=... - Verifique os limites da conta:
GET /risk/limits?wallet=... - Confirme que os instrumentos não venceram:
GET /instruments?currency=...
Ações:
- Se for problema de margem: reduza o tamanho da posição ou adicione colateral
- Se for problema de tier: cubra as vendas com inventário comprado (long) ou entre em contato com a Hypercall sobre uma mudança de tier
- Se estiver vencido: use outros instrumentos
Execuções Ausentes
Sintomas: ordens executadas, mas sem notificações de execução
Investigação:
- Verifique as execuções em
GET /fills?wallet=... - Confirme a inscrição no canal
fillsdo WebSocket - Verifique o status da conexão WebSocket
Ações:
- Reinscreva-se no canal
fills - Consulte o endpoint REST para recuperar execuções perdidas
- Reconcilie as execuções com o status das ordens
Status de Ordem Desatualizado
Sintomas: o status da ordem no REST não corresponde ao do WS
Investigação:
- Verifique o status da conexão WebSocket
- Confirme que o cache de ordens está atualizado
- Compare o status da ordem no REST e no WS
Ações:
- Consulte o REST após a reconexão do WS para se atualizar
- Use o REST como fonte da verdade para a reconciliação
Problemas de MMP
MMP Dispara com Muita Frequência
Sintomas: muitas ordens canceladas pelo MMP
Investigação:
- Verifique a configuração do MMP com um
GET /mmp-config?wallet=...¤cy=...assinado - Revise os padrões de execução e as métricas acumuladas
- Verifique se os limites estão baixos demais
Ações:
- Aumente os limites do MMP (qty, delta, vega)
- Aumente
interval_mspara permitir mais execuções na janela - Reduza a frequência de cotação
MMP Não Dispara
Sintomas: as execuções excedem os limites, mas o MMP não dispara
Investigação:
- Confirme que o MMP está habilitado com um
GET /mmp-config?wallet=...¤cy=...assinado - Verifique
mmp_enabled=truenas ordens - Confirme que a moeda corresponde ao ativo subjacente da ordem
Ações:
- Habilite o MMP nas ordens:
mmp_enabled=true - Configure o MMP para a moeda correta
- Ajuste os limites se necessário
Leituras assinadas do MMP enviam o vencimento e a assinatura de GetMmpConfig nos
headers X-Hypercall-Expires-At-Ms e X-Hypercall-Signature.
Problemas de Margem
Margem Insuficiente
Sintomas: ordens rejeitadas com "Insufficient margin"
Investigação:
- Verifique o portfólio:
GET /portfolio?wallet=... - Revise o cálculo de margem
- Verifique qual cenário está falhando
Ações:
- Reduza o tamanho da posição
- Adicione colateral
- Feche posições para liberar margem
- Faça hedge da exposição para reduzir a perda no pior cenário
Preço Spot Ausente
Sintomas: ordens rejeitadas com um motivo que começa com "Missing spot price for underlying"
Investigação:
- Verifique o
index_pricedo ativo subjacente emGET /markets - Confirme que o símbolo do ativo subjacente está correto
- Verifique a página de status para ver se há um incidente de oráculo
Ações:
- Aguarde a recuperação do feed de preço spot
- Use outro ativo subjacente, se disponível
- Entre em contato com o suporte se o problema persistir
Problemas de Sistema
Alta Latência
Sintomas: respostas lentas da API ou atrasos nas mensagens do WebSocket
Investigação:
- Verifique a carga do sistema
- Monitore os tempos de resposta
- Verifique a conectividade de rede
Ações:
- Reduza a taxa de requisições
- Implemente throttling de requisições
- Entre em contato com o suporte se o problema persistir
Rate Limiting
Sintomas: requisições rejeitadas ou limitadas
Atual: os rate limits são aplicados por carteira, com limites separados por origem para cancelamentos, autorização de agentes, escritas de MMP e simulações de risco. Veja Rate Limits para mais detalhes.
Ações:
- Verifique o header
Retry-Aftere aguarde antes de tentar novamente - Monitore
X-RateLimit-Remainingpara evitar atingir os limites - Use endpoints em lote quando possível
Procedimentos de Emergência
Kill Switch
Ações imediatas:
- Cancele todas as ordens:
DELETE /bulk_orderouDELETE /bulk_order_cloid, até 50 ordens por requisição - Desconecte o WebSocket
- Pare o sistema de cotação
Recuperação:
- Confirme que todas as ordens foram canceladas:
GET /orders?wallet=... - Revise o portfólio:
GET /portfolio?wallet=... - Investigue a causa raiz
- Retome as cotações depois que o problema for resolvido
Reconciliação de Dados
Após o incidente:
- Consulte os endpoints REST para obter o estado atual
- Reconcilie as ordens:
GET /orders?wallet=... - Reconcilie as execuções:
GET /fills?wallet=... - Reconcilie o portfólio:
GET /portfolio?wallet=... - Retome as inscrições do WebSocket
Escalonamento
Se o problema persistir:
- Revise os problemas conhecidos e os avisos de staging fornecidos junto com o acesso
- Consulte os Runbooks para procedimentos detalhados
- Entre em contato com o suporte informando:
- Endereço da carteira
- Mensagens de erro
- Timestamps
- Passos para reproduzir