The specified delivery method is not possible

by Retired ‎02-17-2010 01:57 PM - edited ‎02-18-2010 04:59 PM (3,483 Views)


This article applies to the following:

  • BlackBerry® Mobile Data Service
  • BlackBerry Mobile Data System™ (BlackBerry MDS™)
  • BlackBerry wireless devices based on Java™


When performing a push using the application-level reliability mode, the BlackBerry MDS or the BlackBerry MDS Simulator occasionally fails to accept the push and responds with error 400 and the following:

The specified delivery method is not possible

Cause 1

The BlackBerry Enterprise Server or device software version is earlier than 4.0.

Note: BlackBerry Enterprise Server and BlackBerry Device Software 4.0 and later use the application-level reliability mode.


Upgrade the BlackBerry Enterprise Server and device software to version 4.0 or later, or set the X-Rim-Push-Reliability HTTP header to Application-Preferred in order to use the application-level reliability mode.

Cause 2

The user has not used the BlackBerry Browser since BlackBerry MDS was started, or the application did not make an HTTP request and did not set the appropriate headers to inform the BlackBerry MDS of its abilities.


Request a web page using the BlackBerry Browser, or configure your application to make an HTTP request with required headers. For more information, see this article.

Note: BlackBerry MDS does not recognize if the BlackBerry device supports the application-level reliability mode until it makes an HTTP request with appropriate headers. Until this has occurred, BlackBerry MDS assumes it does not make an HTTP request and returns the error.

Cause 3

The push.application.reliable.ports parameter has not been added to the BlackBerry MDS file.


Configure the BlackBerry MDS or MDS Simulator with ports used with the application-level reliability mode. To do so, open the file and add a push.application.reliable.ports parameter that lists the ports used for pushing data with the application-level reliability mode.

The following example shows an entry that enables port 4000 and 5000 for the application-level reliability mode:


Note: Ports listed in the above example can still be used with other reliability modes or without any reliability mode.

Cause 4

The application is not listening for the push connection, or the push and application are not using the same port.


Verify that the push application is pushing to the port on which the application is listening.

Cause 5

The application is not using MDSPushInputStream to receive the incoming data.


Use MDSPushInputStream if the application needs to support the application-level reliability mode. This allows the application to acknowledge the received data. After reading data from a push, the application should call the accept method of the MDSPushInputStream class to acknowledge it has received the data.