This topic lists frequently asked questions (FAQs) and provides solutions for using the Message Push Service component.
General questions
Permission requirements
On Android 6.0 and later, users must manually grant phone permissions, such as permission to read from and write to an SD card. To ensure push accuracy, guide users to grant the required permissions for the message push service.
Cannot print logs
During testing on a Meizu phone, logs such as log.d and log.i may fail to print. To resolve this issue, go to Settings > Accessibility > Developer options and enable Advanced log output. If you encounter development issues, you can set tag=mpush to filter the logs.
Android-related questions
Port parsing issue in baselines 10.1.60.5 to 10.1.60.7
In an Apsara Stack environment, configuring a push server on a port other than 443 causes a parsing failure and a connection error.
Solution:
If you package using a config file, modify the config file as follows:
// Omit other parts of the config file. Add a backslash (\) and a space before the custom port number. { "pushPort":"\\ 8000", }If you do not package using a config file, modify the value of
rome.push.portin theAndroidManifest.xmlfile as follows:// Add a backslash (\) and a space before the port number. <meta-data android:name="rome.push.port" android:value="\ 8000" />
Cannot send pushes after integrating third-party channels such as Huawei and Xiaomi
This issue occurs because the channel switch in the mPaaS push console is disabled. For code samples, usage instructions, and important notes, see Code sample.
Generating a push ad-token (deviceId)
The server-side generates a deviceId based on the International Mobile Subscriber Identity (IMSI) and International Mobile Equipment Identity (IMEI). Therefore, you must guide users to grant the required READ_PHONE_STATE permission.
Version requirements for EMUI and Huawei Mobile Services for PUSH notifications
Push notifications have version requirements for Emotion UI (EMUI) and Huawei Mobile Services. EMUI is an operating system developed by Huawei based on the Android platform. For detailed version requirements, see Conditions for a device to receive Huawei push messages.
Cannot print logs on a Huawei phone
On the phone's dialer, enter *#*#2846579#*#* to open the engineering menu. Go to Background settings > LOG settings and select AP Log. Restart the phone for the changes to take effect.
Huawei push error codes
For more information about error codes, see Client-side error codes and Server-side error codes on the official Huawei website.
Supported models and system versions for OPPO push
Currently, OPPO push is supported on OPPO models with ColorOS 3.1 or later, OnePlus 5/5T and later models, and all realme models.
ColorOS is a mobile operating system developed by OPPO, based on the Android platform.
OPPO push error codes
If OPPO push does not work, search for OPPO onRegister error = in the client logs to retrieve the error code. Then, refer to the OPPO error code list to identify the cause.
Supported models and system versions for vivo push
The following table shows the supported models and minimum system versions for the SDK. For other questions about vivo push, see vivo Push FAQ.
vivo push error codes
If vivo push does not work, search for fail to turn on vivo push state = in the client logs to retrieve the status code. Then, refer to Public status codes to identify the cause.
Troubleshooting common Android issues
Check whether the
Manifestfile is configured correctly.Check whether the appId (Huawei, Xiaomi, vivo), appSecret (Xiaomi, OPPO), appKey (OPPO, vivo), and ALIPUSH_APPID (mPaaS) are consistent with the applications registered on the respective developer platforms.
View the logcat logs with the tag `mpush`.
iOS-related questions
Notifications when the app is in the foreground
By default, Apple delivers messages when an app is in the foreground but does not display them. To display notifications when the app is in the foreground, you must implement a custom solution.
Message status is NoBindInfo
The NoBindInfo status indicates that a push was sent using a UserId, but no binding information was found for that UserId. First, confirm that the client has called the binding interface. Also, check that the appId and workspaceId match.
Message status is BadDeviceToken
This status occurs only for iOS pushes. It indicates that the token used for the push is invalid. First, verify that the certificate environment is correct.
If the app is packaged with a development certificate, you must configure a development environment certificate in the push console. When you debug on a real device with Xcode, you must use a development certificate.
If the app is packaged with a production certificate, you must configure a production environment certificate in the push console.
Message status is DeviceTokenNotForTopic
This status occurs only for iOS pushes. It indicates that the token does not match the BundleId of the push certificate. First, verify that the certificate is correct and that it matches the BundleId of the packaged client.
Cannot receive messages on an iOS phone, but the message status is ACKED
For iOS pushes, a status of ACKED indicates that the message was successfully delivered to the Apple Push Notification service (APNs). First, confirm that push permissions are enabled and that the app is running in the background.
By default, Apple delivers messages when an app is in the foreground but does not display them. To display notifications when the app is in the foreground, you must implement a custom solution.
RPC call issues
If an exception occurs during a resource call through an RPC request, refer to Security Guard result codes or Gateway result codes to troubleshoot the issue.