Common Issues
This guide covers the most frequently encountered problems and their solutions. Issues are organized in a problem/solution format for quick reference.
Emails Not Sending
Problem: AI-drafted emails stay in the approval queue
Solution: Check your autonomy settings. If you are in Warmup Mode or Assisted mode, all emails require manual approval. Go to Settings > Autonomy & Action Policy and either:
- Switch Email Sending Mode from Warmup to Normal
- Switch Global Autonomy Mode to Controlled or Full
- Approve individual emails from the Approval Queue
Problem: Emails fail with “no sender configured”
Solution: You need at least one active sender. Options:
- Connect an OAuth mailbox (Microsoft 365 or Google) in Settings > Connected Accounts
- Add an SMTP server in Settings > Connected Accounts
- Verify a sending domain in Settings > Connected Accounts
The platform shared sender is available as a fallback but requires the SCENDCORE_RESEND_API_KEY environment variable.
Problem: Emails bounce with “hard bounce”
Solution: The recipient’s email address is invalid or their server rejected the message. Check:
- The contact’s email address for typos
- Settings > Deliverability for bounce rate metrics
- The contact’s email status — hard-bounced contacts are automatically suppressed
OAuth and Connected Accounts
Problem: OAuth token expired
Solution: Go to Settings > Connected Accounts, find the affected mailbox, and click Refresh. This re-runs identity discovery and refreshes the OAuth token. If refresh fails, disconnect and reconnect the account.
Problem: Microsoft OAuth shows “mail field is null”
Solution: Some M365 accounts do not have the mail field populated. ScendCore falls back to userPrincipalName. If the email address is wrong after connecting, disconnect and reconnect the account.
Problem: Google OAuth limited to 100 users
Solution: Your Google OAuth app is in “Testing” mode. Go to the Google Cloud Console > APIs & Services > OAuth consent screen > Audience tab and set the app to “In production”.
Stuck Jobs and Queue Issues
Problem: Outreach jobs show “queued” but never execute
Solution: This can happen if the queue worker is down or the job was deduplicated. Check:
- Verify the queue worker is running (check Railway deploy logs)
- The stuck job rescue cron runs every 60 seconds and re-enqueues jobs older than 90 seconds
- If jobs were manually approved, ensure no
jobIdwas passed (BullMQ silently deduplicates)
Problem: All AI activity is paused
Solution: The kill switch may be active. Go to Settings > Autonomy & Action Policy and check if the Emergency Stop banner is showing. Click Deactivate — Resume AI to restore operations.
Contact and Import Issues
Problem: CSV import shows many errors
Solution:
- Ensure your CSV has a header row with recognized column names
- The
emailcolumn is required - Check for blank rows, invalid email formats, and encoding issues
- Try exporting your CSV in UTF-8 encoding
Problem: Contact not receiving AI outreach
Solution: Check these in order:
- Is AI Paused enabled on the contact? (Contact detail page)
- Is the contact’s lead status set to
do_not_contact? - Is there an active sender profile and channel account?
- Check the Autonomy settings — is the kill switch active?
Conversations
Problem: Conversations page is empty
Solution:
- Check that you have at least one active channel account in Settings > Channels
- Verify inbound webhooks are configured for your email, SMS, or WhatsApp channels
- Try changing the channel filter — you may be filtering to a channel with no conversations
Problem: API route returning HTML instead of JSON
Solution: This almost always means the middleware is redirecting the request to the login page. The route needs to be added to the PUBLIC_PATHS array in the middleware configuration. Contact your administrator if you are seeing this on a server-to-server route.
Voice Calls
Problem: Calls show “Busy” in Twilio
Solution: This is usually a TTS voice error (Twilio error 64101). See the detailed Voice AI Troubleshooting guide.
Problem: Voice calls not appearing in ScendCore
Solution:
- Verify the webhook URL in Twilio is correct
- Check that the voice-relay service is running and accessible
- Review Railway deploy logs for connection errors
Billing
Problem: Billing page shows an error
Solution: If Stripe is not configured in your environment, the billing page will display an error. This is expected on staging deployments where Stripe is not set up.
General
Problem: Page loads but shows no data
Solution: Try these steps:
- Hard refresh the page (Ctrl+Shift+R / Cmd+Shift+R)
- Check your browser’s network tab for failed API requests
- Verify you have the correct role permissions for the page
- Try logging out and back in to refresh your session