Troubleshooting
UpdatedIf you’re having trouble with the SDK, here are some basic steps to troubleshoot your problems, and solutions to some known issues.
Basic troubleshooting steps
- Update to the latest version: When troubleshooting problems with our SDKs, we generally recommend that you try updating to the latest version. That helps us weed out issues that might have been seen in previous versions of the SDK.
- Enable
debug
logging: Reproducing your issue withloglevel(CiologLevel.ERROR)
. This can help you (or us) pinpoint problems.Don’t use debug logging in your production app
Debug mode is great for helping you find problems as you integrate with Customer.io, but we strongly recommend that you don’t set the
loglevel
parameter (which defaults toCiologLevel.ERROR
) in your publicly available, production app. - Try our test image: Using an image that we know works in push and in-app notifications can help you narrow down problems relating to images in your messages.
Examine source and destination calls in Data Pipelines
In Data Pipelines, we’ll show you both the calls that come in from your SDK and how we interpret those calls for each destination—including your Customer.io workspace.
If you have a problem, you may want to go to Data Pipelines and check:
- That your iOS source is connected to your Customer.io Journeys workspace. If you don’t connect your source to Customer.io Journeys, you won’t be able to send messages, etc.
- Your source'sA source is a website or server that you want to capture data from—it’s a source of data! Data In tab to make sure that your app sends the right data.
- Your destination'sA destination is a place that you want to send data from one or more sources to. You can use your own workspace as a destination; send data to another service; or send data to your data warehouse. Data Out tab to make sure that we’re sending the right data from your SDK to the destination. This includes Customer.io, where your app is a data source and your Customer.io workspace is the destination!
Check out our Data Pipelines troubleshooting page for more help pinpointing issues in your integration.
If you need to contact support
We’re here to help! If you contact us for help with an SDK-related issue, we’ll generally ask for the following information. Having it ready for us can help us solve your problem faster.
- Share information about your device and environment: Let us know where you had an issue—the SDK and version of the SDK that you’re using, the specific device, operating system, message, use case, and so on. The more information you share with us, the easier it is for us to weed out externalities and find a solution.
- Share your push or in-app payload: Knowing what images you used, the shape of your payload, and so on helps us reproduce the issue and figure out exactly what went wrong.
- Grant access to your workspace: It may help us to see exactly what triggers a campaign, what data is associated with devices you’re troubleshooting, etc. You can grant access for a limited time, and revoke access at any time.
Capture logs
Logs help us pinpoint the problem and find a solution. To capture logs from the Customer.io SDK:
Enable debug logging in your app.
You should not use debug mode in your production app. Remember to disable debug logging before you release your app to the App Store.
val builder = CustomerIOBuilder( appContext = this, cdpApiKey = "your_cdp_api_key", ) builder.logLevel(CiologLevel.debug) builder.build()
In Android Studio, build and run your app on a physical device or emulator.
Select View > Tool Windows > Logcat. This shows you your device’s logs.
Filter for
CIO
in the top to find log messages specific to the Customer.io SDK.Save your log and send it to our Support team at win@customer.io. In your message, describe your problem and provide relevant information about:
- The version of the SDK you’re using.
- The type of problem you’ve encountered.
- An existing GitHub issue URL or existing support email so we know what these log files are in reference to.
Image display issues
If you’re having trouble, try using our test image in a message! If it works, then there’s likely a problem with your original image.
![a test image of a bird that we know will work with all push notifications](/docs/images/push-image-control.jpg)
![a test image of a bird that we know will work with all push notifications](/docs/images/push-image-control.jpg)
Android and iOS devices support different image sizes and formats. In general, you should stick to the smallest size (under 1 MB—the limit for Android devices) and common formats (PNG, JPEG).
iOS | Android | In-App (all platforms) | |
---|---|---|---|
Format | JPEG, PNG, BMP, GIF | JPEG, PNG, BMP | JPEG, PNG, GIF |
Maximum size | 10 MB* | 1 MB | |
Maximum resolution | 2048 x 1024 px | 1038 x 1038 px |
Push notification issues
Why didn’t everybody in my segment get a push notification?
If your segmentA group of people who match a series of conditions. People enter and exit the segment automatically when they match or stop matching conditions. doesn’t specify people who have an existing device, it’s likely that people entered your segment without using your app. If you send a push notification to such a segment, the “Sent” count will probably show fewer sends than there were people in your segment.
Why are messages sent but not delivered or opened?
The sent status means that we sent a message to your delivery provider—APNS or FCM. It’ll be marked delivered or opened when the delivery provider forwards the message to the device and the SDK reports the metric back to Customer.io. If a person turned their device off or put it in airplane mode, they won’t receive your push notification until they’re back on a network.
FCM SENDER_ID_MISMATCH
error
This error occurs when the FCM Sender ID in your app does not match the Sender ID in your Firebase project. To resolve this issue, you’ll need to ensure that the Sender ID in your app matches the Sender ID in your Firebase project.
- Check that you uploaded the correct JSON certificate to Customer.io. If your JSON certificate represents the wrong Firebase project, you may see this error.
- Verify that the Sender ID in your app matches the Sender ID in your Firebase project.
- If you imported devices (device tokens) from a previous project, make sure that you imported tokens from the correct Firebase project. If the tokens represent a different app than the one you send push notifications to, you’ll see this error.
In-App message issues
My in-app messages are sent but not delivered
People won’t get your message until they open your app. If you use page rules, they won’t see your message until they visit the right screen(s), so delivery times for in-app messages can vary significantly from other types of messages.
If someone’s opened your app to the right screen and hasn’t seen your message, you should make sure that that your app and message use the same identifier. If your app identifies people by email but your message expects an ID, your message won’t be delivered!
![the to field needs to match your identify call](/docs/images/in-app-settings.png)
![the to field needs to match your identify call](/docs/images/in-app-settings.png)