> Source: https://docs.virtuo.in/vibot/troubleshooting > Fixes for the most common Vibot issues — expired Meta number verification, blocked campaign launches, two-step PIN problems, and dropped sends. # Troubleshooting ## "Your phone number's verification with Meta has expired" (campaign launch blocked) This is **separate** from the 6-digit two-step PIN. Meta independently verifies that you own the SIM behind your WhatsApp Business number via an SMS or voice OTP, and expires that verification periodically — typically: - After **~30 days of inactivity** (no business-initiated conversations on the number) - **Annually**, as a routine security refresh - After a **WABA admin or system-user change** (someone added/removed in Meta Business Manager) - After certain Meta-side **security events** (global policy pushes) Until you re-verify, **Meta accepts your template sends but silently drops them** — no delivery webhook fires, recipients never receive the message, and your number's quality score takes a hit. ### Fix it from the Virtuo dashboard 1. Open **Connect WhatsApp** in the dashboard. 2. You'll see an amber banner: *"Meta verification expired — campaigns will fail until you re-verify"*. 3. Pick **Text message (SMS)** or **Voice call** for how you want to receive the 6-digit code. 4. Click **Send code**. Meta sends a fresh OTP to your connected number. 5. Enter the 6 digits → **Verify**. 6. Status flips to a green **Number verified with Meta** pill. Re-launch your campaign. The code expires in 10 minutes. If you mistype, click **Resend** to get a new one. ### Two-step PIN vs. number verification — they are NOT the same | | Two-step PIN | Number verification (SMS/voice OTP) | |---|---|---| | What it proves | You know the 6-digit secret set on the WhatsApp Business app | You own the SIM behind the number | | When triggered | After a new connection, after PIN reset, after restoring from backup | After ~30 days idle, annually, after admin changes | | Where to fix | **Connect WhatsApp → Fix Registration** (existing flow) | **Connect WhatsApp → Verify Number** (this flow) | | Code source | You set it yourself on the WhatsApp Business app | Meta sends a fresh code each time | Both can be needed. Re-verifying one does NOT refresh the other. ## WhatsApp shows "Pending Registration" (amber) 1. Go to **Connect WhatsApp**. 2. Click **Fix Registration**. 3. Enter your 6-digit two-step verification PIN (WhatsApp Business app → Settings → Account → Two-step verification). 4. Click **Confirm & Connect**. Status turns green. ## Template was REJECTED by Meta Common causes: overly promotional body text, category mismatch, missing sample data. 1. Create a **new template** (templates cannot be edited after submission). 2. Use a factual, non-salesy tone in the body. 3. Pick the right category — order status updates = Utility, not Marketing. 4. Fill in **Sample Data** for every `{{1}} {{2}}` variable before submitting. ## Campaign recipients stuck in FAILED Open the campaign detail page → click the amber **Retry Failed (N)** button in the header. ## Knowledge Base document stuck in "Processing" for more than 5 minutes 1. Click the trash icon to delete the document. 2. Re-upload, checking the file is within your plan's size limit. ## AI stopped responding to customers Two most likely causes: 1. **Quota exceeded.** **Billing → Overview** → check the AI messages bar. If at limit, add wallet credits (overage costs ₹1.25 – ₹2.00 per message depending on plan) or upgrade. 2. **Manually escalated.** In **Chats**, find the conversation with the amber **Human** badge → click **Hand to AI**. ## Campaign blocked at launch — "Insufficient wallet balance" The 402 error shows required vs. available amounts. **Billing → Overview → Add Credits**, top up at least the required amount, then relaunch. ## Team member cannot see certain pages Check their role at **Settings → Members**. An **AGENT** can only access Chats + Escalations. Change to **SUPERVISOR** for full access (except Billing/Members). Note seat limits scale with plan. ## Payment failed on subscription renewal Vibot falls back to your wallet automatically. If both fail, the subscription enters a halted state. 1. **Billing → Overview → Add Credits** to top up the wallet. 2. Razorpay retries automatically in 24–48 hours, or click **Upgrade Plan** to retry immediately. ## Team member received invite but cannot accept Invite links expire after 72 hours. Delete the pending invite row → send a new one. ## Campaign Step 3 — "Sending blocked" (red preflight) Every blocker is listed. Most common fixes: 1. Re-export the CSV with phone numbers in **+919876543210** format (with leading `+`). 2. Make sure every `{{1}} {{2}}` variable has a non-empty value in the mapped column. 3. Pick a different contact filter that excludes opted-out contacts. Fix the source, return to Step 2, re-import. Step 3 will re-run preflight automatically. ## Campaign Step 3 — "Review warnings before launch" (amber preflight) Launchable, but with soft warnings (previously-failed numbers, opt-out matches, length-overflow rows). - Accept by ticking **"I've reviewed the warnings above and want to launch anyway"** — those rows go into the campaign report as SKIPPED with a typed reason; you're never charged for them. - Or go back to Step 2, clean the list, relaunch. ## Campaign was cancelled by "Safety check failed" When the canary flag is on, the first 10 recipients are sent as a canary cohort and evaluated 60 seconds later. If 5%+ return spam-block errors, the campaign auto-cancels. 1. Open the campaign detail page — the red banner shows the spam-failure count. 2. Investigate the source list (most common cause: mass-imported old or low-quality numbers). 3. Clean the list (remove failed numbers, double-check phone formats). 4. Use **Resume Skipped (N)** with the **Conservative** drip preset to send the cleaned list paced. See [Recover from a cancelled campaign](/vibot/how-to#recover-from-a-cancelled-campaign-with-resume-skipped). ## Voice replies stopped working — "Cap reached" Basic plan = **20 voice replies per billing cycle**. Once the cap is hit, the AI silently falls back to text-only — no error to the customer. The counter resets automatically on your next subscription renewal date. To remove the cap: upgrade to **Pro**. ## My team is testing and our phones show as "dead_number" The system caches Meta's 131026/131049 errors as a 30-day dead-number flag, cross-tenant. **Fix:** label those contacts **Test** (capital T) on the Contacts page — they're exempted from dead_number warnings for that tenant. ## AI didn't respond meaningfully to an image or document 1. Open the conversation in **Chats** — the cached AI caption (or "User sent a document: filename.pdf") on the inbound row shows what the AI saw. 2. If the caption looks wrong, the image was probably blurry / screenshot-of-a-screenshot / text-too-small. Ask the customer to resend. 3. If a document didn't extract ("text could not be extracted"), it's likely a scanned image-PDF with no text layer, or password-protected. Ask the customer for an unprotected version. ## Onboarding banner won't go away after I verified my number The banner gates on **two** things — phone verified **and** profile complete (org name + industry). Click **Complete profile** in the banner and finish steps 3 + 4 of the wizard.