Troubleshooting
Find your problem below. Each answer explains the cause and what to do, with a link to the full guide.
Quick Checks
Most problems come down to one of these:
- The mode switch at the top of DartPro shows Live. In Test mode, messages aren't broadcast.
- Your email is verified and your organization profile is complete. See How do I Complete My Organization Profile?.
- Your sender ID is approved. See Sender ID Statuses.
- Your balance covers the send. See Recharging.
Sending Messages
The send button is disabled
It stays disabled until all of these are true:
- Your email is verified and your organization profile is complete.
- Your balance covers the estimated cost. If it doesn't, the compose screen shows Insufficient Credit or Insufficient Balance. Click Top Up Balance.
- The route you picked under Advanced Options has its compliance documents approved. See Compliance Documents.
- On To File Contacts with Use Template, at least one placeholder matches a column in your file.
Messages never arrive, and campaigns say "You were not billed"
Your account is in Test mode. Change the mode switch at the top of DartPro to Live, then send again. See How do Test and Live Modes Work?.
My message was scheduled for 8:00 AM instead of sending now
Promotional messages sent between 8:00 PM and 8:00 AM are held until 8:00 AM, in line with NCC regulation. Send during the day, or use the right traffic type if your message isn't promotional. See Traffic Types.
I see "Message Submitted" instead of "Message Sent"
Messages sent with the Cecula sender ID are reviewed before delivery. To skip the review, register and use your own sender ID. See How do I Register a Sender ID?.
"Contact limit of 2000 reached"
To Individuals takes up to 2,000 recipients. For more, save the numbers to a group and use To Groups, or upload them with To File Contacts.
A message uses more segments than expected
A single special character, such as an emoji or a curly quote pasted from a word processor, switches the whole message to Unicode. Unicode messages hold 70 characters per segment instead of 160. Replace those characters with plain ones. See Segments.
Personalized messages show blanks or brackets
| You see | Cause | Fix |
|---|---|---|
A blank, such as Hello , | The contact has no value for that detail | Fill in the contact's details |
[mobile] sent as written | Group messages don't fill [mobile] | Use [phone]. See Personalize with Contact Details |
Brackets in file messages, such as [amount] | The placeholder doesn't exactly match a column name | Rename the placeholder or the column. See Personalize with File Columns |
A scheduled group message reached no one
Scheduled group messages look up their groups by name when they're sent. If a group was renamed or deleted before then, its members don't get the message. Keep group names unchanged until your scheduled messages have gone out.
A scheduled message didn't go out
- Not enough balance at send time. If Scheduled Message Billing is set to At Send Time, the send fails when your balance is too low at that moment. Recharge, or switch to In Advance. See When You're Charged.
- Deleted template. If the message used a template you've since deleted, schedule it again with a template that exists.
Sender IDs
My sender ID isn't in the Sender ID list
- It isn't approved yet. Check its status under Identities. See Sender ID Statuses.
- A specific provider hasn't approved it. This happens with Manual Routing or a provider chosen under Advanced Options. You may see Please register Identities to send messages via… or Your Sender IDs are pending review for…. See Manual Routing.
If sending fails with …has not been approved, the same causes apply.
I can't register a sender ID
| Message | What to do |
|---|---|
| This sender name has already been approved on your account. | Nothing. It's ready to use |
| This sender name was rejected previously. Try another. | Register a different name that follows the naming rules |
| You have previously submitted this sender name. | Wait. It's already under review |
| Invalid Hosted Number or API Key | For hosted numbers, check the number and your Cecula Sync API key |
Delivery
Messages show SENT for a long time
Networks can take up to 24 hours to confirm delivery. Check the campaign again later. See What Do Delivery Statuses Mean?.
Recipients show UNDELIV, EXPIRED or FAILED
The network couldn't deliver the message, for example because the phone was off. Wait for final statuses, then send to those recipients again. See How do I Resend a Message?.
Recipients show REJECTD, DND, NOCREDT or REMOVED
| Status | Cause | What to do |
|---|---|---|
| REJECTD | The network or provider rejected it | Check your sender ID's approval and the message content |
| DND | The number is on the Do-Not-Disturb register | Nothing. The recipient has opted out |
| NOCREDT | Your balance ran out during the send | Recharge, then resend to those recipients |
| REMOVED | The number is invalid or couldn't be routed | Correct the number. These aren't charged |
A campaign stopped before reaching everyone
If the Sent To count stays below the total, select the campaign on Campaigns and click Complete Broadcast. If the result is Ignored, the campaign is still processing, so try again in 5 minutes. See Complete a Stalled Broadcast.
Contacts and Imports
Some rows didn't import
A spreadsheet row is skipped when it has:
- A mobile number that isn't in a supported Nigerian format, such as
08012345678or2348012345678 - Neither a mobile number nor an email
- An invalid email, or a name longer than 64 characters
See How do I Import Contacts?.
"Invalid file: No "mobile" or "phone" column found."
Rename the column that holds the phone numbers to mobile or phone, then upload the file again.
"You must map at least one of Mobile or Email fields to proceed."
When matching your columns, match your number column to Mobile or your email column to Email.
New contacts don't show in a group
A group's member list can take a while to update. Open the group and click Refresh Data (the refresh icon).
Saving a contact says "Contact Updated" instead of "Contact Added"
A contact with that mobile number already exists, so DartPro updated it with what you entered, and any empty fields were cleared. To change one detail, edit the contact instead. See How do I Update a Contact?.
People can't join a group by text
- Exact match. The whole message must be exactly the opt-in code, including capital letters.
- Right number. It must be sent to the group's Hosted Number.
- Saved codes. Set up the codes with Edit Group after the group exists.
Google import says "Your session has expired"
Too much time passed after you connected Google. Start the Google import again.
Recharging and Billing
I paid with Paystack but my wallet wasn't credited
Don't pay again. The top-up stays Pending until it's verified. Email [email protected] with the transaction reference, which starts with PAYSTK-.
My Pay Direct payment hasn't been confirmed
Payments are usually reviewed within 24 hours. If it's taking longer, contact support with your payment reference and proof of payment.
My new wallet balance doesn't show in DartPro
DartPro can take up to a minute to show a wallet top-up. Reload the page.
I bought units, but messages are charged to my wallet
Your billing mode is set to Naira or USD, so messages are charged to your Cecula Wallet. To use your units, go to Settings > SMS Messaging and set Billing & Currency Preference to Credits. See Recharging.
"No Matching Price Tier for … sms units"
Your quantity is below the smallest price tier. Increase the number of units.
"Only NGN wallets can be topped up currently."
USD wallets can't be topped up yet. Email [email protected] for help.
Reports and Logs
"Report Not Ready"
Campaign PDF reports are conclusive 24 hours after sending. Click Schedule Report to get it by email when it's ready, or Generate Now for a report with the delivery data available so far. See Reports in the First 24 Hours.
"Please Wait Before Regenerating" or "Download Limit Reached"
You've recently generated or downloaded that report. The dialog shows when you can try again.
A PDF report I generated is gone
Generated PDF reports are kept for 7 days. Request a new one.
Message Logs shows no messages
Message Logs starts on the last 24 hours. Choose a longer period, such as Last 30 Days, in Traffic Overview.
Export to File fails
Exports are sent by email, so they fail when:
- Your email isn't verified. Verify it from the link in your inbox.
- Emails to your address have bounced. Update your email address in your profile settings.
- You've unsubscribed from DartPro emails. Contact support to resubscribe.
API
Requests return code 1804, "Insufficient Balance"
Your live API key tried to send more than your balance covers. The response shows available_balance and min_required_balance. Recharge, then try again.
Messages sent through the API don't reach phones
- Sandbox key. Requests made with the Sandbox key are for testing, so switch to the Live key.
- Test mode. If your account is in Test mode, messages sent through the API are marked as test messages. Switch the mode to Live.
See How do Test and Live Modes Work?.
Requests are rejected as unauthorized
Check that you're sending the right key in the Authorization header. See Authentication.
Contact Support
If you're still stuck:
- Open a support ticket. Click Support in DartPro's left sidebar and fill in Submit New Ticket with a Subject, Priority and Message. You can attach a screenshot (JPG or PNG, up to 5 MB). The team responds within 24 hours.
- Or send an email to [email protected].
To speed things up, include:
- the sender ID;
- the campaign or recipient reference;
- any payment reference;
- a screenshot of the error.

