Skip to main content
Use these checks when sign-in, deployment, webhooks, or account connection does not work.

Google sign-in says the account is not allowed

Check that the exact Google email is listed in .env:
OPERATOR_EMAIL_ALLOWLIST=you@example.com
Restart after changing .env:
docker compose up -d --build

Google login redirects to the wrong URL

Make sure all app origins match the real domain:
SITE_URL=https://your-domain.com
BETTER_AUTH_URL=https://your-domain.com
TRUSTED_ORIGINS=https://your-domain.com
Verify the Google OAuth redirect URI:
https://your-domain.com/api/auth/callback/google

Meta webhook verification fails

Check:
  • META_VERIFY_TOKEN in .env exactly matches the token entered in Meta.
  • https://your-domain.com/api/meta/webhooks is reachable publicly.
  • The app was restarted after .env changes.
  • The Meta app is published.
  • The subscribed fields are messages, messaging_postbacks, and comments.
Useful commands:
curl -i https://your-domain.com/api/meta/webhooks
docker compose logs -f app
A plain browser request to the webhook URL may return 403 because it is missing Meta verification query parameters. That still proves the route is reachable. Meta’s Verify and save button is the real webhook verification.

Meta webhooks are verified but no events appear

Check:
  • The webhook callback URL points to the correct target for your distribution.
  • The connected Instagram account accepted the tester invite during development.
  • The app has the required Instagram permissions.
  • The app is in Live mode for real users.
  • The Instagram account is professional, business or creator.
  • The connected account still appears active in the account page.
For Nudgra Cloud, the webhook callback URL is the Convex URL. For Nudgra OSS, it is the app URL.

Instagram account does not appear during connection

Check:
  • The Instagram account accepted the tester invite.
  • The invite was accepted from Instagram on desktop.
  • The app has the required Instagram permissions.
  • The Instagram account is professional, business or creator.
  • You are logged into the correct Instagram account when authorizing.
  • The app SITE_URL matches the Meta redirect URL exactly.

Caddy says address already in use

On a Nudgra OSS VPS, check what owns ports 80 and 443:
sudo ss -tulpn | grep -E ':80|:443'
If another Caddy site is already bound to a public IP, use bind YOUR_VPS_PUBLIC_IP in the Nudgra site block. If Nginx is running and you do not use it, stop it:
sudo systemctl stop nginx
sudo systemctl disable nginx

Mutations fail with Forbidden origin

For Nudgra OSS, add the exact origin to TRUSTED_ORIGINS:
TRUSTED_ORIGINS=https://your-domain.com
Then restart:
docker compose up -d --build
Check:
SITE_URL=https://your-domain.com
Restart after changing .env.