Преминете към основното съдържание

Troubleshooting: Licensing API грешки

Симптоми

  • https://api.dictaro.ai/health връща грешка или timeout
  • Потребителите не могат да се логнат
  • Stripe webhooks failing

Диагностика

1. Health check

curl -sf https://api.dictaro.ai/health | jq .

2. Логове на контейнера

az vm run-command invoke \
--resource-group dictaro-rg --name dictaro-vm \
--command-id RunShellScript \
--scripts "cd /home/rosen/whisper-keyboard/licensing-go && docker compose logs licensing --tail 100"

3. Database свързаност

az vm run-command invoke \
--resource-group dictaro-rg --name dictaro-vm \
--command-id RunShellScript \
--scripts "docker exec licensing-go-licensing-1 wget -qO- http://localhost:8080/health"

Чести проблеми

Database connection refused

Причина: PostgreSQL сървърът не е достъпен или firewall блокира.

Решение:

# Проверете firewall rules в Azure Portal
# dictaro-db-server → Networking → Firewall rules
# Добавете IP на VM-а ако не е добавен

JWT key errors

Причина: JWT ключовете не са записани правилно.

Решение:

az vm run-command invoke \
--resource-group dictaro-rg --name dictaro-vm \
--command-id RunShellScript \
--scripts "ls -la /home/rosen/whisper-keyboard/licensing-go/keys/"

Ключовете трябва да са private.pem и public.pem с chmod 600.

Stripe webhook signature mismatch

Причина: STRIPE_WEBHOOK_SECRET не съвпада с конфигурирания в Stripe Dashboard.

Решение:

  1. Stripe Dashboard → Developers → Webhooks → Signing secret
  2. Обновете STRIPE_WEBHOOK_SECRET в GitHub Secrets
  3. Redeploy

OAuth callback errors

Причина: Redirect URI не е регистриран в OAuth провайдъра.

Решение: Проверете redirect URI в:

  • Google Cloud Console → Credentials
  • Azure Portal → App Registrations → Authentication
  • GitHub → Developer Settings → OAuth Apps

Трябва да включва: https://api.dictaro.ai/auth/callback/{provider}

Рестартиране

az vm run-command invoke \
--resource-group dictaro-rg --name dictaro-vm \
--command-id RunShellScript \
--scripts "cd /home/rosen/whisper-keyboard/licensing-go && docker compose restart licensing"