{"id":631,"date":"2026-11-07T10:49:03","date_gmt":"2026-11-07T15:49:03","guid":{"rendered":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/troubleshooting\/"},"modified":"2026-11-07T10:49:03","modified_gmt":"2026-11-07T15:49:03","slug":"troubleshooting","status":"publish","type":"page","link":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/troubleshooting\/","title":{"rendered":"Troubleshooting"},"content":{"rendered":"\n<!--\n  ============================================================================\n  PAGE: Troubleshooting\n  SLUG: troubleshooting\n  URL:  https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/troubleshooting\n  ============================================================================\n-->\n<style>\n.kb-page{\n  --coral:#EE6055; --mint:#3DE8B7; --ink:#1A1A1A; --paper:#FAFAF7; --pen:#5F5E5A;\n  --yellow:#F8E170; --blue:#365eff; --line:#ececec;\n  font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\n  color:var(--ink); line-height:1.62; max-width:840px; margin:0 auto; padding:0 20px 72px; box-sizing:border-box;\n}\n.kb-page *{box-sizing:border-box;}\n.kb-page a{color:var(--blue); text-decoration:none;}\n.kb-page a:hover{text-decoration:underline;}\n.kb-page .kb-crumb{font-size:13px; color:var(--pen); padding:26px 0 0; display:flex; gap:8px; flex-wrap:wrap; align-items:center;}\n.kb-page .kb-crumb a{color:var(--pen);}\n.kb-page .kb-crumb a:hover{color:var(--coral);}\n.kb-page .kb-crumb span{opacity:.5;}\n.kb-page .kb-head{padding:18px 0 6px;}\n.kb-page .kb-eyebrow{display:inline-block; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;\n  color:var(--coral); background:rgba(238,96,85,.1); padding:5px 12px; border-radius:999px; margin-bottom:14px;}\n.kb-page h1{font-size:clamp(26px,4vw,36px); line-height:1.15; margin:0 0 12px; font-weight:800; letter-spacing:-.02em;}\n.kb-page .kb-lead{font-size:17px; color:var(--pen); margin:0 0 8px;}\n.kb-page .kb-acc{margin-top:26px; border-top:1px solid var(--line);}\n.kb-page .kb-item{border-bottom:1px solid var(--line);}\n.kb-page .kb-q{width:100%; text-align:left; background:none; border:0; cursor:pointer; font:inherit; color:var(--ink);\n  display:flex; gap:14px; align-items:flex-start; padding:20px 4px; font-size:17px; font-weight:650;}\n.kb-page .kb-q:hover{color:var(--coral);}\n.kb-page .kb-q .kb-qi{flex:none; width:22px; height:22px; margin-top:1px; transition:transform .2s; color:var(--coral);}\n.kb-page .kb-item.open .kb-q .kb-qi{transform:rotate(45deg);}\n.kb-page .kb-q .kb-qt{flex:1;}\n.kb-page .kb-a{max-height:0; overflow:hidden; transition:max-height .3s ease;}\n.kb-page .kb-a-inner{padding:0 4px 22px 36px; font-size:15.5px; color:#33322f;}\n.kb-page .kb-a-inner p{margin:0 0 13px;}\n.kb-page .kb-a-inner ul,.kb-page .kb-a-inner ol{margin:0 0 13px; padding-left:20px;}\n.kb-page .kb-a-inner li{margin:0 0 7px;}\n.kb-page .kb-a-inner strong{color:var(--ink);}\n.kb-page .kb-a-inner h3{font-size:16px; font-weight:700; margin:20px 0 10px; color:var(--ink);}\n.kb-page .kb-a-inner code{background:var(--paper); padding:2px 6px; border-radius:4px; font-size:14px; font-family:\"SF Mono\",\"Menlo\",Consolas,monospace;}\n.kb-page .kb-a-inner blockquote{margin:0 0 13px; padding:12px 16px; background:var(--paper); border-left:3px solid var(--line); border-radius:0 8px 8px 0; color:var(--pen);}\n.kb-page .kb-a-inner .kb-tip{background:var(--paper); border-left:3px solid var(--mint); border-radius:8px; padding:12px 16px; margin:0 0 13px; font-size:14.5px;}\n.kb-page .kb-a-inner .kb-note{background:#fff8e6; border-left:3px solid var(--yellow); border-radius:8px; padding:12px 16px; margin:0 0 13px; font-size:14.5px;}\n.kb-page .kb-a-inner .kb-table-wrap{overflow-x:auto; margin:0 0 13px;}\n.kb-page .kb-a-inner .kb-table{width:100%; border-collapse:collapse; font-size:14px; border:1px solid var(--line); border-radius:8px; overflow:hidden;}\n.kb-page .kb-a-inner .kb-table th{background:var(--paper); font-weight:700; text-align:left; padding:10px 12px; border-bottom:1px solid var(--line);}\n.kb-page .kb-a-inner .kb-table td{padding:9px 12px; border-bottom:1px solid var(--line);}\n.kb-page .kb-a-inner .kb-table tr:last-child td{border-bottom:none;}\n.kb-page .kb-mockup{margin:22px auto 26px; max-width:640px; padding:22px; background:#f4f5f7; border-radius:16px; border:1px solid var(--line);}\n.kb-page .kb-mockup svg{width:100%; height:auto; display:block; border-radius:10px; box-shadow:0 4px 16px rgba(0,0,0,.08);}\n.kb-page .kb-mockup-caption{margin:12px 0 0; font-size:13px; color:var(--pen); text-align:center; font-style:italic;}\n.kb-page .kb-related{margin-top:40px; background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:22px 24px;}\n.kb-page .kb-related h2{font-size:15px; text-transform:uppercase; letter-spacing:.08em; color:var(--pen); margin:0 0 14px;}\n.kb-page .kb-related ul{list-style:none; margin:0; padding:0; display:grid; gap:10px;}\n.kb-page .kb-related a{display:flex; gap:8px; align-items:center; font-weight:600; font-size:15px;}\n.kb-page .kb-cta{margin-top:34px; background:var(--ink); color:#fff; border-radius:20px; padding:32px 28px; text-align:center;}\n.kb-page .kb-cta h3{margin:0 0 8px; font-size:21px; font-weight:800;}\n.kb-page .kb-cta p{margin:0 0 20px; color:#cfcfcf; font-size:15px;}\n.kb-page .kb-cta-btns{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}\n.kb-page .kb-btn{display:inline-flex; align-items:center; gap:8px; padding:13px 24px; border-radius:999px; font-weight:700; font-size:14px;}\n.kb-page .kb-btn svg{width:18px;height:18px;}\n.kb-page .kb-btn-coral{background:var(--coral); color:#fff;}\n.kb-page .kb-btn-coral:hover{background:#e2483b; text-decoration:none;}\n.kb-page .kb-btn-ghost{background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.3);}\n.kb-page .kb-btn-ghost:hover{border-color:#fff; text-decoration:none;}\n.kb-page .kb-back{display:inline-flex; align-items:center; gap:7px; margin-top:30px; font-weight:600; font-size:14px; color:var(--pen);}\n.kb-page .kb-back:hover{color:var(--coral);}\n.kb-page .kb-contact{margin:34px 0 0; min-height:790px;}\n\n.kb-page .kb-fig{margin:14px 0 18px;}\n.kb-page .kb-fig img{display:block; width:100%; height:auto; border:1px solid var(--line); border-radius:12px; box-shadow:0 6px 24px rgba(0,0,0,.08);}\n.kb-page .kb-fig figcaption{font-size:13px; color:var(--pen); margin-top:8px; text-align:center;}\n.kb-page .kb-demo{margin:22px 0 18px;}\n.kb-page .kb-demo-tag{display:inline-block; background:var(--coral); color:#fff; font-weight:700; font-size:12px; letter-spacing:.06em; text-transform:uppercase; padding:4px 10px; border-radius:999px; margin-bottom:8px;}\n.kb-page .kb-notice{margin:18px 0 6px; padding:14px 18px; border-radius:12px; background:#fff8e1; border:1px solid #f3dd8a; font-size:15px;}\n.kb-page .kb-notice strong{color:#1A1A1A;}\n<\/style>\n<section class=\"kb-page\" id=\"troubleshooting\">\n<nav aria-label=\"Breadcrumb\" class=\"kb-crumb\">\n<a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/\">Help Center<\/a><span>\/<\/span>\n    Troubleshooting\n  <\/nav>\n<header class=\"kb-head\">\n<span class=\"kb-eyebrow\">Fixes &amp; Errors<\/span>\n<h1>Troubleshooting<\/h1>\n<p class=\"kb-lead\">Fixes for connection and OAuth issues, webhook failures, campaign publish errors, and platform-specific problems.<\/p>\n<\/header>\n<div class=\"kb-acc\">\n<div class=\"kb-item\">\n<button aria-expanded=\"false\" class=\"kb-q\"><svg class=\"kb-qi\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewbox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"><\/path><\/svg><span class=\"kb-qt\">Connection &amp; OAuth issues<\/span><\/button>\n<div class=\"kb-a\"><div class=\"kb-a-inner\"><h3>Ticket: Instagram OAuth popup closes immediately<\/h3>\n<p><strong>Symptoms:<\/strong> User clicks Connect Instagram; Meta popup flashes and closes. <strong>Root cause:<\/strong> Browser blocked third-party cookies or popup blocker. <strong>Resolution steps:<\/strong> 1. Allow popups for dmpro.brandid.app. 2. Retry + Connect Instagram at \/settings#accounts. 3. Use Chrome or Edge with cookies enabled. 4. If persists, clear Facebook cookies and retry OAuth. 5. Confirm Instagram is Business\/Creator linked to a <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/facebook\/\">Facebook Page<\/a>.<\/p>\n<h3>Ticket: TikTok connect shows unauthorized<\/h3>\n<p><strong>Symptoms:<\/strong> Connect with TikTok returns error after authorization. <strong>Root cause:<\/strong> TikTok account lacks Business Messaging eligibility. <strong>Resolution steps:<\/strong> 1. Verify TikTok Business or Creator account. 2. Reconnect at \/settings#accounts. 3. Ensure admin access to the TikTok account. 4. Contact support@brandid.app with TikTok handle if error persists.<\/p>\n<h3>Ticket: LinkedIn connect fails, not Page admin<\/h3>\n<p><strong>Symptoms:<\/strong> LinkedIn OAuth succeeds but account shows error. <strong>Root cause:<\/strong> User is not LinkedIn Organization admin. <strong>Resolution steps:<\/strong> 1. Confirm admin role on LinkedIn Company Page. 2. Reconnect with an admin account at \/settings#accounts. 3. Page must have Community Management API access.<\/p>\n<h3>Ticket: Facebook Page not listed in OAuth<\/h3>\n<p><strong>Symptoms:<\/strong> Meta popup shows no Pages to select. <strong>Root cause:<\/strong> User lacks admin role on any Facebook Page. <strong>Resolution steps:<\/strong> 1. Verify Page admin in Facebook Settings \u2192 Page roles. 2. Reconnect Connect with Meta. 3. Ensure Page is published, not restricted.<\/p>\n<h3>Ticket: WhatsApp number already linked elsewhere<\/h3>\n<p><strong>Symptoms:<\/strong> Connect WhatsApp error: number in use. <strong>Root cause:<\/strong> <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/whatsapp\/\">WhatsApp Business<\/a> number connected to another Meta app. <strong>Resolution steps:<\/strong> 1. Disconnect from other platforms in Meta Business Manager. 2. Retry Connect WhatsApp at \/settings#accounts. 3. Use a dedicated Business API number if needed.<\/p>\n<h3>Ticket: Telegram invalid bot token<\/h3>\n<p><strong>Symptoms:<\/strong> Connect Telegram modal shows token error. <strong>Root cause:<\/strong> Token copied incorrectly or revoked in <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/telegram\/\">BotFather<\/a>. <strong>Resolution steps:<\/strong> 1. Message @BotFather \u2192 \/token \u2192 copy fresh token. 2. Paste without spaces into Connect Telegram modal. 3. Revoke old token if compromised, generate new.<\/p>\n<h3>Ticket: Google sign-in redirect loop<\/h3>\n<p><strong>Symptoms:<\/strong> User clicks Continue with Google; page reloads repeatedly. <strong>Root cause:<\/strong> Third-party cookie blocking or stale session. <strong>Resolution steps:<\/strong> 1. Clear cookies for dmpro.brandid.app and accounts.google.com. 2. Retry \/signin in incognito window. 3. Disable browser extensions blocking OAuth. 4. If loop persists, use email\/password sign-in and link Google later.<\/p>\n<h3>Ticket: Magic link expired<\/h3>\n<p><strong>Symptoms:<\/strong> User clicks <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/auth-onboarding\/\">magic link<\/a> after 15 minutes; error shown. <strong>Root cause:<\/strong> Magic links expire after 15 minutes per security policy. <strong>Resolution steps:<\/strong> 1. Return to \/signin \u2192 Magic link. 2. Request a new link. 3. Open email promptly and click once.<\/p>\n<h3>Ticket: Locked out after enabling two-step verification<\/h3>\n<p><strong>Symptoms:<\/strong> User turned on two-step verification and now can&#8217;t get past the sign-in code prompt. <strong>Root cause:<\/strong> The one-time code email didn&#8217;t arrive, arrived late, or was sent to an email the user no longer has access to. <strong>Resolution steps:<\/strong> 1. Check spam and wait a minute for the code email. 2. Retry \/signin and request a fresh code rather than reusing an old one. 3. If the account email itself is inaccessible, email support@brandid.app to verify identity and disable two-step verification on the account.<\/p><\/div><\/div>\n<\/div>\n<div class=\"kb-item\">\n<button aria-expanded=\"false\" class=\"kb-q\"><svg class=\"kb-qi\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewbox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"><\/path><\/svg><span class=\"kb-qt\">Webhooks &amp; automations not firing<\/span><\/button>\n<div class=\"kb-a\"><div class=\"kb-a-inner\"><h3>Ticket: Campaign active but no automations fire<\/h3>\n<p><strong>Symptoms:<\/strong> Published campaign; fan triggers action; nothing happens. <strong>Root cause:<\/strong> Webhook subscription missing or keyword mismatch. <strong>Resolution steps:<\/strong> 1. Verify campaign status Active on \/campaigns. 2. Check <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/dashboard\/\">Live activity<\/a> on \/dashboard for Ignored events. 3. Confirm keyword match mode (exact vs contains). 4. Instagram: verify post scope includes target post. 5. Reconnect account at \/settings#accounts if token expired. 6. Check Service health badge on Overview.<\/p>\n<h3>Ticket: Ignored webhook in Conversations<\/h3>\n<p><strong>Symptoms:<\/strong> Inbound events appear as Ignored webhook. <strong>Root cause:<\/strong> No campaign matched the inbound event. <strong>Resolution steps:<\/strong> 1. Open thread \u2192 read Ignored reason badge. 2. Verify keyword spelling and case sensitivity setting. 3. Check frequency cap did not block fan. 4. Must follow account rule may have skipped non-followers. 5. Ensure only one Active campaign matches same trigger.<\/p>\n<h3>Ticket: Call webhook returns 500<\/h3>\n<p><strong>Symptoms:<\/strong> Webhook action fires but external URL errors. <strong>Root cause:<\/strong> Destination server rejected payload. <strong>Resolution steps:<\/strong> 1. Verify HTTPS URL in Call webhook inspector. 2. Check server logs for payload format. 3. Use Send test webhook in builder. 4. Ensure endpoint returns 2xx within timeout.<\/p>\n<h3>Ticket: LinkedIn comment trigger silent<\/h3>\n<p><strong>Symptoms:<\/strong> Comments on Page post; no reply. <strong>Root cause:<\/strong> LinkedIn webhook subscription or keyword issue. <strong>Resolution steps:<\/strong> 1. Confirm LinkedIn Page Connected at \/settings#accounts. 2. Verify comment keyword matches. 3. Check post scope on trigger node. 4. Reply on comment step must have content.<\/p>\n<h3>Ticket: Telegram bot webhook conflict<\/h3>\n<p><strong>Symptoms:<\/strong> Bot connected but no message delivery. <strong>Root cause:<\/strong> Another service registered webhook on same bot. <strong>Resolution steps:<\/strong> 1. Disconnect and reconnect Telegram at \/settings#accounts. 2. DMpro re-registers webhook automatically. 3. Remove conflicting webhook via <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/telegram\/\">BotFather<\/a> if needed.<\/p>\n<h3>Ticket: Duplicate campaigns matching same trigger<\/h3>\n<p><strong>Symptoms:<\/strong> Random campaign fires; others ignored. <strong>Root cause:<\/strong> Multiple Active campaigns with overlapping keywords. <strong>Resolution steps:<\/strong> 1. Audit \/campaigns for duplicate Active triggers on same account. 2. Pause redundant campaigns. 3. Use distinct keywords or post scopes per campaign. 4. Only one campaign matches each inbound event.<\/p>\n<h3>Ticket: Delay step causing perceived failure<\/h3>\n<p><strong>Symptoms:<\/strong> User expects instant reply; message arrives late. <strong>Root cause:<\/strong> Delay logic block configured in flow. <strong>Resolution steps:<\/strong> 1. Open campaign canvas and check Delay nodes. 2. Reduce or remove Delay if instant response needed. 3. Communicate expected wait to fans in comment reply.<\/p><\/div><\/div>\n<\/div>\n<div class=\"kb-item\">\n<button aria-expanded=\"false\" class=\"kb-q\"><svg class=\"kb-qi\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewbox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"><\/path><\/svg><span class=\"kb-qt\">Campaign publish\/validation errors<\/span><\/button>\n<div class=\"kb-a\"><div class=\"kb-a-inner\"><h3>Ticket: Publish button greyed out<\/h3>\n<p><strong>Symptoms:<\/strong> Cannot click Publish campaign. <strong>Root cause:<\/strong> Validation errors unresolved. <strong>Resolution steps:<\/strong> 1. Read red validation banner at top of builder. 2. Add trigger block to canvas. 3. Add at least one action with content. 4. Select connected account in header dropdown. 5. Resolve pending collaborator invites on \/campaigns\/invitations.<\/p>\n<h3>Ticket: Pending invites block publish<\/h3>\n<p><strong>Symptoms:<\/strong> Multi-account campaign cannot publish. <strong>Root cause:<\/strong> Wait for invites mode with outstanding invites. <strong>Resolution steps:<\/strong> 1. Open \/campaigns\/invitations \u2192 check Sent tab. 2. Resend invite email or share invite link. 3. Wait for invitee to accept at \/campaign-invite. 4. Or remove wait-for-invites requirement in campaign settings.<\/p>\n<h3>Ticket: AI limit reached validation<\/h3>\n<p><strong>Symptoms:<\/strong> Publish blocked or campaign auto-paused. <strong>Root cause:<\/strong> Monthly AI credits exhausted. <strong>Resolution steps:<\/strong> 1. Check AI credits meter on \/dashboard. 2. Free: wait for monthly $3 reset or upgrade to Pro. 3. Pro: add payment method for AI passthrough on \/plans. 4. Remove <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/affiliate-ai\/\">AI Response<\/a> steps temporarily to publish without AI.<\/p>\n<h3>Ticket: Free plan multi-account error<\/h3>\n<p><strong>Symptoms:<\/strong> Cannot add second account to campaign. <strong>Root cause:<\/strong> Free limits to 1 account per campaign. <strong>Resolution steps:<\/strong> 1. Upgrade to Pro on \/plans for multi-account campaigns. 2. Or create separate campaigns per account. 3. Remove extra accounts from campaign header dropdown.<\/p>\n<h3>Ticket: Empty Send DM block<\/h3>\n<p><strong>Symptoms:<\/strong> Validation: Send DM has no message body. <strong>Root cause:<\/strong> Action node missing text content. <strong>Resolution steps:<\/strong> 1. Click Send DM node \u2192 enter message in inspector. 2. Insert {{affiliate_link}} if using tracked links. 3. Click Publish again after banner clears.<\/p>\n<h3>Ticket: Invalid webhook URL blocks publish<\/h3>\n<p><strong>Symptoms:<\/strong> Call webhook step shows red validation. <strong>Root cause:<\/strong> URL missing HTTPS or malformed. <strong>Resolution steps:<\/strong> 1. Enter valid HTTPS URL in Call webhook inspector. 2. Use Send test webhook to verify. 3. Remove webhook step if not needed.<\/p>\n<h3>Ticket: Branch block missing options<\/h3>\n<p><strong>Symptoms:<\/strong> Branch validation error on publish. <strong>Root cause:<\/strong> Fewer than 2 branch paths configured. <strong>Resolution steps:<\/strong> 1. Open Branch node \u2192 add at least 2 button\/keyword options. 2. Connect each branch to subsequent actions. 3. Republish after validation clears.<\/p><\/div><\/div>\n<\/div>\n<div class=\"kb-item\">\n<button aria-expanded=\"false\" class=\"kb-q\"><svg class=\"kb-qi\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewbox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"><\/path><\/svg><span class=\"kb-qt\">Meta\/Instagram specific<\/span><\/button>\n<div class=\"kb-a\"><div class=\"kb-a-inner\"><h3>Ticket: Private reply already sent for comment<\/h3>\n<p><strong>Symptoms:<\/strong> Second DM attempt to same comment fails. <strong>Root cause:<\/strong> Meta allows one private reply per comment. <strong>Resolution steps:<\/strong> 1. Design flow with single Send DM after comment trigger. 2. Use Reply on comment for public acknowledgment. 3. Do not chain multiple private replies to one comment.<\/p>\n<h3>Ticket: Must follow account skipping fans<\/h3>\n<p><strong>Symptoms:<\/strong> Followers receive DMs; non-followers do not. <strong>Root cause:<\/strong> Must follow account ground rule active. <strong>Resolution steps:<\/strong> 1. Expected behavior, rule skips non-followers. 2. Remove Must follow account if you want all fans. 3. Use DM trigger without follow requirement for open access.<\/p>\n<h3>Ticket: Instagram story trigger not firing<\/h3>\n<p><strong>Symptoms:<\/strong> Fan replies to story; no automation. <strong>Root cause:<\/strong> Keyword mismatch or story outside account scope. <strong>Resolution steps:<\/strong> 1. Verify <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/instagram\/\">Story Reply<\/a> trigger keyword. 2. Confirm connected account matches story publisher. 3. Check campaign Active and account Connected.<\/p>\n<h3>Ticket: Product cards empty in DM<\/h3>\n<p><strong>Symptoms:<\/strong> Send products step sends without products. <strong>Root cause:<\/strong> Meta Commerce catalog not linked. <strong>Resolution steps:<\/strong> 1. Connect Meta Commerce on \/integrations. 2. Select products in Send products inspector. 3. Sync catalog, up to 10 products per message.<\/p>\n<h3>Ticket: Instagram token expired<\/h3>\n<p><strong>Symptoms:<\/strong> Campaign paused; account shows reconnect. <strong>Root cause:<\/strong> Meta OAuth token expired or revoked. <strong>Resolution steps:<\/strong> 1. Go to \/settings#accounts \u2192 Reconnect Instagram. 2. Re-publish paused campaigns after reconnect. 3. Enable Campaign pause alerts in \/settings#notifications.<\/p>\n<h3>Ticket: Mention trigger not matching<\/h3>\n<p><strong>Symptoms:<\/strong> Fan @mentions account; no DM sent. <strong>Root cause:<\/strong> Wrong mention trigger type or keyword filter. <strong>Resolution steps:<\/strong> 1. Use correct trigger: Mention in Post, Reel, or Story. 2. Set keyword filter to match caption text or leave as any. 3. Verify campaign Active on connected account.<\/p><\/div><\/div>\n<\/div>\n<div class=\"kb-item\">\n<button aria-expanded=\"false\" class=\"kb-q\"><svg class=\"kb-qi\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewbox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"><\/path><\/svg><span class=\"kb-qt\">TikTok specific<\/span><\/button>\n<div class=\"kb-a\"><div class=\"kb-a-inner\"><h3>Ticket: TikTok DM not delivered<\/h3>\n<p><strong>Symptoms:<\/strong> Campaign active; test DM sent; no reply. <strong>Root cause:<\/strong> Keyword mismatch or TikTok API delay. <strong>Resolution steps:<\/strong> 1. Verify keyword in Direct Message trigger. 2. Check Conversations at \/conversations for thread. 3. <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/tiktok\/\">TikTok Business Messaging<\/a> must be enabled on account. 4. Review <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/dashboard\/\">Live activity<\/a> on \/dashboard.<\/p>\n<h3>Ticket: Cannot add image to TikTok DM<\/h3>\n<p><strong>Symptoms:<\/strong> User expects attachment in TikTok flow. <strong>Root cause:<\/strong> TikTok palette is text-only. <strong>Resolution steps:<\/strong> 1. Remove attachment steps, not supported on TikTok. 2. Send URL in text including {{affiliate_link}}. 3. Direct fans to link in text message.<\/p>\n<h3>Ticket: TikTok account disconnected<\/h3>\n<p><strong>Symptoms:<\/strong> Campaign paused after TikTok reconnect prompt. <strong>Root cause:<\/strong> OAuth token expired. <strong>Resolution steps:<\/strong> 1. Reconnect at \/settings#accounts. 2. Resume campaign on \/campaigns.<\/p>\n<h3>Ticket: TikTok keyword case sensitivity<\/h3>\n<p><strong>Symptoms:<\/strong> DM with correct word does not trigger. <strong>Root cause:<\/strong> Case-sensitive keyword match enabled. <strong>Resolution steps:<\/strong> 1. Open trigger inspector \u2192 disable case sensitivity. 2. Or match exact capitalization fan uses. 3. Test with secondary TikTok account.<\/p><\/div><\/div>\n<\/div>\n<div class=\"kb-item\">\n<button aria-expanded=\"false\" class=\"kb-q\"><svg class=\"kb-qi\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewbox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"><\/path><\/svg><span class=\"kb-qt\">LinkedIn specific<\/span><\/button>\n<div class=\"kb-a\"><div class=\"kb-a-inner\"><h3>Ticket: LinkedIn Send DM disabled<\/h3>\n<p><strong>Symptoms:<\/strong> User tries to use Send DM action. <strong>Root cause:<\/strong> LinkedIn DM API not yet available. <strong>Resolution steps:<\/strong> 1. Use Reply on comment instead. 2. Add Call webhook for CRM notification. 3. Send DM shows Coming soon, do not rely on it.<\/p>\n<h3>Ticket: Comment reply not public<\/h3>\n<p><strong>Symptoms:<\/strong> Expected public reply not visible. <strong>Root cause:<\/strong> Reply on comment content empty or wrong post. <strong>Resolution steps:<\/strong> 1. Verify Reply on comment has text in inspector. 2. Confirm post scope matches company post. 3. Check LinkedIn Page admin permissions.<\/p><\/div><\/div>\n<\/div>\n<div class=\"kb-item\">\n<button aria-expanded=\"false\" class=\"kb-q\"><svg class=\"kb-qi\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewbox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"><\/path><\/svg><span class=\"kb-qt\">Facebook\/WhatsApp specific<\/span><\/button>\n<div class=\"kb-a\"><div class=\"kb-a-inner\"><h3>Ticket: Messenger outside 24-hour window<\/h3>\n<p><strong>Symptoms:<\/strong> Send DM fails for older thread. <strong>Root cause:<\/strong> Messenger messaging window closed. <strong>Resolution steps:<\/strong> 1. User must message Page first to reopen window. 2. Use sponsored messaging for ad-driven flows. 3. Validation banner warns in builder for window issues.<\/p>\n<h3>Ticket: WhatsApp sticker too large<\/h3>\n<p><strong>Symptoms:<\/strong> Send sticker fails validation. <strong>Root cause:<\/strong> WebP exceeds 500 KB limit. <strong>Resolution steps:<\/strong> 1. Compress sticker below 500 KB. 2. Re-upload in Send sticker inspector.<\/p>\n<h3>Ticket: WhatsApp session expired<\/h3>\n<p><strong>Symptoms:<\/strong> Cannot send free-form message. <strong>Root cause:<\/strong> 24-hour service window closed. <strong>Resolution steps:<\/strong> 1. User must send inbound message to reopen session. 2. For outbound cold messages use Meta-approved templates in Business Manager. 3. Design flows triggered by inbound DMs to stay in window.<\/p>\n<h3>Ticket: Facebook lead form trigger not firing<\/h3>\n<p><strong>Symptoms:<\/strong> Lead submitted; no automation. <strong>Root cause:<\/strong> Lead ad not linked or campaign inactive. <strong>Resolution steps:<\/strong> 1. Verify Lead ad form trigger payload matches form. 2. Confirm campaign Active. 3. Check <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/facebook\/\">Facebook Page<\/a> Connected.<\/p>\n<h3>Ticket: WhatsApp not on onboarding<\/h3>\n<p><strong>Symptoms:<\/strong> User cannot find WhatsApp on \/onboarding. <strong>Root cause:<\/strong> WhatsApp connect only in Settings by design. <strong>Resolution steps:<\/strong> 1. Go to \/settings#accounts \u2192 Connect WhatsApp. 2. Complete Meta Business WhatsApp linking.<\/p>\n<h3>Ticket: Messenger postback payload mismatch<\/h3>\n<p><strong>Symptoms:<\/strong> User taps button; flow does not start. <strong>Root cause:<\/strong> Postback payload in flow does not match button. <strong>Resolution steps:<\/strong> 1. Open Postback button trigger inspector. 2. Match payload string exactly to Messenger template. 3. Republish campaign after correction.<\/p><\/div><\/div>\n<\/div>\n<div class=\"kb-item\">\n<button aria-expanded=\"false\" class=\"kb-q\"><svg class=\"kb-qi\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewbox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"><\/path><\/svg><span class=\"kb-qt\">Telegram specific<\/span><\/button>\n<div class=\"kb-a\"><div class=\"kb-a-inner\"><h3>Ticket: Bot \/start not triggering flow<\/h3>\n<p><strong>Symptoms:<\/strong> User taps start; nothing happens. <strong>Root cause:<\/strong> Start menu button trigger payload mismatch. <strong>Resolution steps:<\/strong> 1. Verify <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/telegram\/\">BotFather<\/a> menu buttons match trigger payloads. 2. Test referral link t.me\/Bot?start=test. 3. Confirm campaign Active and bot Connected.<\/p>\n<h3>Ticket: Telegram invoice not sending<\/h3>\n<p><strong>Symptoms:<\/strong> Send invoice step fails. <strong>Root cause:<\/strong> Payments not configured in BotFather. <strong>Resolution steps:<\/strong> 1. Configure payment provider via @BotFather. 2. Complete Send invoice fields in inspector. 3. Test in Telegram sandbox mode first.<\/p><\/div><\/div>\n<\/div>\n<div class=\"kb-item\">\n<button aria-expanded=\"false\" class=\"kb-q\"><svg class=\"kb-qi\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewbox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"><\/path><\/svg><span class=\"kb-qt\">Discord specific<\/span><\/button>\n<div class=\"kb-a\"><div class=\"kb-a-inner\"><h3>Ticket: Discord bot connects but slash command and buttons don&#8217;t respond<\/h3>\n<p><strong>Symptoms:<\/strong> Discord account shows Active in DMpro, but <code>\/start<\/code> or button taps never trigger a flow. <strong>Root cause:<\/strong> Discord requires the interactions endpoint to answer synchronously over HTTPS with a valid signature. A relay like Hookdeck doesn&#8217;t satisfy that and gets rejected during Discord&#8217;s endpoint verification. <strong>Resolution steps:<\/strong> 1. Don&#8217;t put Hookdeck, or a similar async relay, in front of the Discord interactions endpoint. 2. In local or dev testing, use a real public tunnel such as ngrok or Cloudflare Tunnel instead. 3. Reconnect the Discord bot in DMpro so the interactions endpoint re-registers. 4. Confirm the account still shows Active at \/settings#accounts.<\/p>\n<h3>Ticket: Discord keyword DMs, channel messages, member-join, or voice triggers never fire<\/h3>\n<p><strong>Symptoms:<\/strong> Slash <code>\/start<\/code> and buttons work fine, but keyword DM, channel keyword, welcome-on-join, or voice join\/leave campaigns never trigger. <strong>Root cause:<\/strong> Those triggers rely on the bot&#8217;s Gateway (real-time) connection, which is separate from the interactions webhook that powers <code>\/start<\/code> and buttons. If the Gateway is off or disconnected, those events never reach DMpro. <strong>Resolution steps:<\/strong> 1. Reconnect the Discord account at \/settings#accounts to reinitialize the Gateway session. 2. Confirm the bot has the needed server permissions to read messages and see member\/voice events. 3. Remember slash <code>\/start<\/code> and button\/select triggers don&#8217;t need the Gateway, only keyword and join\/voice triggers do.<\/p>\n<h3>Ticket: Connect Discord rejects the bot token<\/h3>\n<p><strong>Symptoms:<\/strong> Pasting a token into Connect Discord fails immediately. <strong>Root cause:<\/strong> DMpro needs a genuine bot token from a Discord application, since there&#8217;s no OAuth sign-in for Discord, not a user token, client secret, or OAuth code. <strong>Resolution steps:<\/strong> 1. Open your application in the Discord Developer Portal. 2. Copy the token from the Bot tab, regenerating it there first if it was already reset or exposed. 3. Paste the fresh token into Connect Discord at \/settings#accounts.<\/p>\n<h3>Ticket: Discord flow step fails to send even though it&#8217;s in the builder<\/h3>\n<p><strong>Symptoms:<\/strong> A location, contact, invoice, GIF, or media-album step is added to a Discord flow and fails when it tries to send. <strong>Root cause:<\/strong> Those action types are Telegram\/WhatsApp-only. They can still appear in the palette for a Discord flow, but Discord&#8217;s runtime rejects them at send time. <strong>Resolution steps:<\/strong> 1. Remove the unsupported step from the Discord flow. 2. Replace it with a Discord-native action: buttons, select menu, embed, modal, or sticker. 3. Keep DM and channel text under Discord&#8217;s 2,000-character limit.<\/p>\n<h3>Ticket: Discord channel keyword trigger doesn&#8217;t fire without a mention<\/h3>\n<p><strong>Symptoms:<\/strong> A channel keyword campaign is Active, but fans typing the keyword in a channel don&#8217;t get a reply unless they @mention the bot. <strong>Root cause:<\/strong> Channel received-message triggers have a mention mode (Required, Optional, or Both). If it&#8217;s set to Required, only messages that @mention the bot will match. <strong>Resolution steps:<\/strong> 1. Open the trigger inspector on the campaign. 2. Change mention mode to Optional or Both if you want keyword-only messages to match. 3. Confirm the bot has permission to read messages in that channel.<\/p><\/div><\/div>\n<\/div>\n<div class=\"kb-item\">\n<button aria-expanded=\"false\" class=\"kb-q\"><svg class=\"kb-qi\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewbox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"><\/path><\/svg><span class=\"kb-qt\">Billing &amp; subscription<\/span><\/button>\n<div class=\"kb-a\"><div class=\"kb-a-inner\"><h3>Ticket: Stripe checkout failed<\/h3>\n<p><strong>Symptoms:<\/strong> Upgrade to Pro payment declined. <strong>Root cause:<\/strong> Card declined or Stripe error. <strong>Resolution steps:<\/strong> 1. Retry \/plans \u2192 Upgrade to Pro. 2. Use different payment method in <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/plans-billing\/\">Stripe Checkout<\/a>. 3. Contact bank if international card blocked. 4. Email support@brandid.app with checkout session ID.<\/p>\n<h3>Ticket: Unexpected overage charge<\/h3>\n<p><strong>Symptoms:<\/strong> Stripe invoice higher than expected. <strong>Root cause:<\/strong> Conversation overage beyond plan cap. <strong>Resolution steps:<\/strong> 1. Review <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/dashboard\/\">usage meter<\/a> on \/dashboard. 2. Free: $0.08\/conversation after 250. 3. Pro: 3\u00d7 tier rate overage. 4. Upgrade tier or pause campaigns to control volume.<\/p>\n<h3>Ticket: Gift code invalid<\/h3>\n<p><strong>Symptoms:<\/strong> Redeem at \/gift fails. <strong>Root cause:<\/strong> Code expired or already used. <strong>Resolution steps:<\/strong> 1. Verify code spelling and expiration. 2. Contact sender or support@brandid.app. 3. Check Plans page for current promotion terms.<\/p>\n<h3>Ticket: Downgrade blocked<\/h3>\n<p><strong>Symptoms:<\/strong> Cannot downgrade to Free. <strong>Root cause:<\/strong> Active multi-account campaigns exceed Free limits. <strong>Resolution steps:<\/strong> 1. Remove extra accounts from campaigns. 2. Revoke collaborator invites. 3. Pause or delete Pro-only campaigns. 4. Then downgrade via Stripe Customer Portal.<\/p>\n<h3>Ticket: Subscription shows wrong plan<\/h3>\n<p><strong>Symptoms:<\/strong> Sidebar still shows Free after upgrade. <strong>Root cause:<\/strong> Stripe webhook delay or cache. <strong>Resolution steps:<\/strong> 1. Refresh browser and re-login. 2. Check \/plans for current subscription status. 3. Wait 5 minutes for Stripe webhook processing. 4. Contact support@brandid.app with Stripe receipt if unchanged after 1 hour.<\/p>\n<h3>Ticket: Refund request<\/h3>\n<p><strong>Symptoms:<\/strong> User wants refund for accidental upgrade. <strong>Root cause:<\/strong> Billing dispute or accidental purchase. <strong>Resolution steps:<\/strong> 1. Email support@brandid.app with account email and charge date. 2. Downgrade via Stripe Customer Portal to prevent renewal. 3. Support reviews refund eligibility per policy.<\/p><\/div><\/div>\n<\/div>\n<div class=\"kb-item\">\n<button aria-expanded=\"false\" class=\"kb-q\"><svg class=\"kb-qi\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewbox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"><\/path><\/svg><span class=\"kb-qt\">Plan limits &amp; overage<\/span><\/button>\n<div class=\"kb-a\"><div class=\"kb-a-inner\"><h3>Ticket: Hit 250 conversation cap on Free<\/h3>\n<p><strong>Symptoms:<\/strong> <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/dashboard\/\">Usage meter<\/a> at 100%; overage billing started. <strong>Root cause:<\/strong> Free monthly cap reached. <strong>Resolution steps:<\/strong> 1. Monitor meter on \/dashboard. 2. Overage at $0.08\/conversation continues automation. 3. Upgrade to Pro on \/plans for higher included volume. 4. Pause low-priority campaigns to reduce volume.<\/p>\n<h3>Ticket: Frequency cap blocking repeat fans<\/h3>\n<p><strong>Symptoms:<\/strong> Same fan cannot re-enter flow. <strong>Root cause:<\/strong> Frequency cap logic block configured. <strong>Resolution steps:<\/strong> 1. Review Frequency cap settings on canvas. 2. Increase cap limit or time window. 3. Or remove cap if repeat entries desired.<\/p>\n<h3>Ticket: Pro conversation slider confusion<\/h3>\n<p><strong>Symptoms:<\/strong> Unsure which tier to select. <strong>Root cause:<\/strong> Build Your Plan slider on \/plans. <strong>Resolution steps:<\/strong> 1. Start at 1000 conversations base tier. 2. Adjust slider in 250-conversation steps. 3. Overage at 3\u00d7 tier rate, see Plans page tooltips.<\/p><\/div><\/div>\n<\/div>\n<div class=\"kb-item\">\n<button aria-expanded=\"false\" class=\"kb-q\"><svg class=\"kb-qi\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewbox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"><\/path><\/svg><span class=\"kb-qt\">AI response failures<\/span><\/button>\n<div class=\"kb-a\"><div class=\"kb-a-inner\"><h3>Ticket: AI Response generic or wrong<\/h3>\n<p><strong>Symptoms:<\/strong> AI replies do not match brand voice. <strong>Root cause:<\/strong> Insufficient AI instructions or context. <strong>Resolution steps:<\/strong> 1. Expand AI instructions in <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/affiliate-ai\/\">AI Response<\/a> inspector. 2. Upload FAQ context files. 3. Switch from continuous to one-time if appropriate. 4. Republish campaign after edits.<\/p>\n<h3>Ticket: AI campaign paused mid-conversation<\/h3>\n<p><strong>Symptoms:<\/strong> Continuous AI stops replying. <strong>Root cause:<\/strong> AI credits exhausted or idle timeout. <strong>Resolution steps:<\/strong> 1. Check AI credits on \/dashboard. 2. Increase idle timeout in continuous mode settings. 3. Top up AI on \/plans (Pro passthrough).<\/p>\n<h3>Ticket: AI Response option missing or not sending on TikTok<\/h3>\n<p><strong>Symptoms:<\/strong> User can&#8217;t find or can&#8217;t get replies from AI Response on a TikTok campaign. <strong>Root cause:<\/strong> TikTok now supports native AI Response (one-time and continuous) on Comment on post and Direct message triggers, so a missing option is usually a builder refresh or credit issue, not a platform limitation. <strong>Resolution steps:<\/strong> 1. Refresh the builder and confirm the TikTok account is Connected. 2. Add the AI Response block from the palette on a Comment on post or Direct message flow. 3. Check the AI credits meter on \/dashboard, since exhausted credits block generation the same as on other platforms. 4. Instagram, TikTok, Telegram, and Discord support native AI Response; LinkedIn, Facebook, and WhatsApp do not.<\/p><\/div><\/div>\n<\/div>\n<div class=\"kb-item\">\n<button aria-expanded=\"false\" class=\"kb-q\"><svg class=\"kb-qi\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewbox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"><\/path><\/svg><span class=\"kb-qt\">Account suspension\/deletion<\/span><\/button>\n<div class=\"kb-a\"><div class=\"kb-a-inner\"><h3>Ticket: Account suspended<\/h3>\n<p><strong>Symptoms:<\/strong> Cannot sign in; suspension notice. <strong>Root cause:<\/strong> Terms violation or payment fraud flag. <strong>Resolution steps:<\/strong> 1. Email support@brandid.app with account email. 2. Do not create duplicate accounts. 3. Support reviews within 2 business days.<\/p>\n<h3>Ticket: Delete account request<\/h3>\n<p><strong>Symptoms:<\/strong> User wants all data removed. <strong>Root cause:<\/strong> GDPR\/privacy deletion request. <strong>Resolution steps:<\/strong> 1. Settings \u2192 Danger zone at \/settings#danger. 2. Export data first from \/settings#privacy. 3. Type confirmation phrase to delete. 4. Stripe subscription cancels automatically. 5. Email support@brandid.app for deletion confirmation receipt.<\/p>\n<h3>Ticket: Data export request<\/h3>\n<p><strong>Symptoms:<\/strong> User needs copy of all data. <strong>Root cause:<\/strong> Privacy compliance request. <strong>Resolution steps:<\/strong> 1. Settings \u2192 Privacy &amp; data \u2192 Download export. 2. JSON includes campaigns, conversations metadata, settings. 3. For full enterprise export email support@brandid.app.<\/p><\/div><\/div>\n<\/div>\n<div class=\"kb-item\">\n<button aria-expanded=\"false\" class=\"kb-q\"><svg class=\"kb-qi\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewbox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"><\/path><\/svg><span class=\"kb-qt\">Data &amp; privacy requests<\/span><\/button>\n<div class=\"kb-a\"><div class=\"kb-a-inner\"><h3>Ticket: GDPR data access request<\/h3>\n<p><strong>Symptoms:<\/strong> EU user requests all personal data. <strong>Root cause:<\/strong> Legal data access requirement. <strong>Resolution steps:<\/strong> 1. Direct user to \/settings#privacy \u2192 Download export. 2. If export insufficient, email support@brandid.app with account email. 3. Support provides full export within 30 days per policy. 4. Deletion via \/settings#danger if user wants erasure.<\/p>\n<h3>Ticket: CCPA opt-out request<\/h3>\n<p><strong>Symptoms:<\/strong> California user requests do-not-sell. <strong>Root cause:<\/strong> Privacy compliance request. <strong>Resolution steps:<\/strong> 1. Direct to \/settings#privacy for data controls. 2. Email support@brandid.app with account email. 3. Support confirms opt-out within 45 days. 4. No sale of personal data, confirm in response.<\/p>\n<h3>Ticket: Conversation history deletion<\/h3>\n<p><strong>Symptoms:<\/strong> User wants specific threads erased. <strong>Root cause:<\/strong> Partial data deletion request. <strong>Resolution steps:<\/strong> 1. Account deletion at \/settings#danger removes all data. 2. For selective deletion email support@brandid.app. 3. Provide conversation IDs from \/conversations if available. 4. Support processes per retention policy.<\/p><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"kb-related\">\n<h2>Related articles<\/h2>\n<ul>\n<li><a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/ai-assistant-mcp\/\">AI Assistant (MCP) \u2192<\/a><\/li>\n<li><a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/#how-to-guides\">How-To Guides \u2192<\/a><\/li>\n<li><a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/faq\">Frequently Asked Questions \u2192<\/a><\/li>\n<li><a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/instagram\">Instagram Automation \u2192<\/a><\/li>\n<li><a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/campaigns-basics\">Creating Campaigns \u2192<\/a><\/li>\n<li><a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/campaign-builder\">Campaign Flow Builder \u2192<\/a><\/li>\n<li><a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/plans-billing\">Plans &amp; Billing \u2192<\/a><\/li>\n<li><a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/discord\">Discord Automation \u2192<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"kb-cta\">\n<h3>Still stuck? We&#8217;re happy to help.<\/h3>\n<p>Create your DMpro account, see pricing, or reach out to support directly.<\/p>\n<div class=\"kb-cta-btns\">\n<a class=\"kb-btn kb-btn-coral\" href=\"https:\/\/dmpro.brandid.app\/signin\">\n<svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewbox=\"0 0 24 24\"><path d=\"M5 12h14M12 5l7 7-7 7\"><\/path><\/svg>Create Free Account<\/a>\n<a class=\"kb-btn kb-btn-ghost\" href=\"https:\/\/dmpro.brandid.app\/\">\n<svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewbox=\"0 0 24 24\"><rect height=\"18\" rx=\"2\" width=\"18\" x=\"3\" y=\"4\"><\/rect><path d=\"M3 10h18\"><\/path><\/svg>See Plans<\/a>\n<a class=\"kb-btn kb-btn-ghost\" href=\"https:\/\/brandid.app\/contact-us\/\">\n<svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewbox=\"0 0 24 24\"><path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"><\/path><\/svg>Contact Support<\/a>\n<\/div>\n<\/div>\n<a class=\"kb-back\" href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/\"><svg fill=\"none\" height=\"16\" stroke=\"currentColor\" stroke-width=\"2\" viewbox=\"0 0 24 24\" width=\"16\"><path d=\"m15 18-6-6 6-6\"><\/path><\/svg>Back to Help Center<\/a>\n<div class=\"kb-contact\">\n<script data-accent=\"ff4a1f\" data-height=\"790px\" data-title=\"Contact us\" data-width=\"100%\" defer=\"\" src=\"https:\/\/chatgram-embed.brandid.app\/embed\/v1\/chatgram-embed-loader.js\"><\/script>\n<\/div>\n<\/section>\n<script>\ndocument.querySelectorAll('#troubleshooting .kb-q').forEach(function(q){\n  q.addEventListener('click', function(){\n    var item = q.closest('.kb-item');\n    var a = item.querySelector('.kb-a');\n    var open = item.classList.toggle('open');\n    q.setAttribute('aria-expanded', open ? 'true' : 'false');\n    a.style.maxHeight = open ? a.scrollHeight + 'px' : '0';\n  });\n});\nwindow.addEventListener('resize', function(){\n  document.querySelectorAll('#troubleshooting .kb-item.open .kb-a').forEach(function(a){ a.style.maxHeight = a.scrollHeight + 'px'; });\n});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Help Center\/ Troubleshooting Fixes &amp; Errors Troubleshooting Fixes for connection and OAuth issues, webhook failures, campaign publish errors, and platform-specific problems. Connection &amp; OAuth issues Ticket: Instagram OAuth popup closes immediately Symptoms: User clicks Connect Instagram; Meta popup flashes and closes. Root cause: Browser blocked third-party cookies or popup blocker. Resolution steps: 1. Allow popups [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":585,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-631","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Troubleshooting - DMpro Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/troubleshooting\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Troubleshooting - DMpro Blog\" \/>\n<meta property=\"og:description\" content=\"Help Center\/ Troubleshooting Fixes &amp; Errors Troubleshooting Fixes for connection and OAuth issues, webhook failures, campaign publish errors, and platform-specific problems. Connection &amp; OAuth issues Ticket: Instagram OAuth popup closes immediately Symptoms: User clicks Connect Instagram; Meta popup flashes and closes. Root cause: Browser blocked third-party cookies or popup blocker. Resolution steps: 1. Allow popups [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/troubleshooting\/\" \/>\n<meta property=\"og:site_name\" content=\"DMpro Blog\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"17 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/dmpro-knowledge-base\\\/troubleshooting\\\/\",\"url\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/dmpro-knowledge-base\\\/troubleshooting\\\/\",\"name\":\"Troubleshooting - DMpro Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/#website\"},\"datePublished\":\"2026-11-07T15:49:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/dmpro-knowledge-base\\\/troubleshooting\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/dmpro-knowledge-base\\\/troubleshooting\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/dmpro-knowledge-base\\\/troubleshooting\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DMpro Help Center\",\"item\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/dmpro-knowledge-base\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Troubleshooting\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/\",\"name\":\"DMpro Blog\",\"description\":\"DM automation playbooks for Instagram, TikTok, WhatsApp, Telegram, Messenger and LinkedIn\",\"publisher\":{\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/#organization\",\"name\":\"DMpro\",\"url\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/dmpro-icon-512.png\",\"contentUrl\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/dmpro-icon-512.png\",\"width\":512,\"height\":512,\"caption\":\"DMpro\"},\"image\":{\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.instagram.com\\\/brandid.creators\\\/\",\"https:\\\/\\\/brandid.app\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Troubleshooting - DMpro Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/troubleshooting\/","og_locale":"en_US","og_type":"article","og_title":"Troubleshooting - DMpro Blog","og_description":"Help Center\/ Troubleshooting Fixes &amp; Errors Troubleshooting Fixes for connection and OAuth issues, webhook failures, campaign publish errors, and platform-specific problems. Connection &amp; OAuth issues Ticket: Instagram OAuth popup closes immediately Symptoms: User clicks Connect Instagram; Meta popup flashes and closes. Root cause: Browser blocked third-party cookies or popup blocker. Resolution steps: 1. Allow popups [&hellip;]","og_url":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/troubleshooting\/","og_site_name":"DMpro Blog","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/troubleshooting\/","url":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/troubleshooting\/","name":"Troubleshooting - DMpro Blog","isPartOf":{"@id":"https:\/\/dmpro.brandid.app\/blog\/#website"},"datePublished":"2026-11-07T15:49:03+00:00","breadcrumb":{"@id":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/troubleshooting\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/troubleshooting\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/troubleshooting\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dmpro.brandid.app\/blog\/"},{"@type":"ListItem","position":2,"name":"DMpro Help Center","item":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/"},{"@type":"ListItem","position":3,"name":"Troubleshooting"}]},{"@type":"WebSite","@id":"https:\/\/dmpro.brandid.app\/blog\/#website","url":"https:\/\/dmpro.brandid.app\/blog\/","name":"DMpro Blog","description":"DM automation playbooks for Instagram, TikTok, WhatsApp, Telegram, Messenger and LinkedIn","publisher":{"@id":"https:\/\/dmpro.brandid.app\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dmpro.brandid.app\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/dmpro.brandid.app\/blog\/#organization","name":"DMpro","url":"https:\/\/dmpro.brandid.app\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dmpro.brandid.app\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/dmpro.brandid.app\/blog\/wp-content\/uploads\/2026\/09\/dmpro-icon-512.png","contentUrl":"https:\/\/dmpro.brandid.app\/blog\/wp-content\/uploads\/2026\/09\/dmpro-icon-512.png","width":512,"height":512,"caption":"DMpro"},"image":{"@id":"https:\/\/dmpro.brandid.app\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.instagram.com\/brandid.creators\/","https:\/\/brandid.app\/"]}]}},"_links":{"self":[{"href":"https:\/\/dmpro.brandid.app\/blog\/wp-json\/wp\/v2\/pages\/631","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dmpro.brandid.app\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dmpro.brandid.app\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dmpro.brandid.app\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dmpro.brandid.app\/blog\/wp-json\/wp\/v2\/comments?post=631"}],"version-history":[{"count":0,"href":"https:\/\/dmpro.brandid.app\/blog\/wp-json\/wp\/v2\/pages\/631\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/dmpro.brandid.app\/blog\/wp-json\/wp\/v2\/pages\/585"}],"wp:attachment":[{"href":"https:\/\/dmpro.brandid.app\/blog\/wp-json\/wp\/v2\/media?parent=631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}