Connection to the Server failed

This message is displayed whenever the Swift MEAP™ client is unable to contact the Swift MEAP™ server URL registered with iEnterprises.  This means:

  1. The client was able to connect to the Swift MEAP™ Activation server
  2. The Swift MEAP™ Server address was returned to the device.
  3. When the client attempted to send login details to the server address received, the client was unable to open the URL.

A user will experience this when they enter an activation user id, the client connects to the iEnterprises Activation server and the Activation Server returns a Swift MEAP™ Server address.  The client is unable to connect to the Swift MEAP™ Server and therefore cannot validate credentials.

First step, enable logging

As with all activation issues, your first step should be to enable logging, client logs will be required. Please see Enabling client logs

Possible causes and investigation

No internet connection

The device has no internet connection - please check that the device has an active internet connection. 

If the client was able to connect to the activation server and retrieve details, this is unlikely to be the cause as the client required a connection to get the details.  It could indicate a temporary internet outage, which is outside of our control. 

No internet connection - follow up actions

Please re-attempt activation.  If it continues to fail, you may need to check your networking / cellular network provider.  We require an active internet connection to complete activation so in areas with poor network coverage, this may take some time to complete

Activation URL is incorrect

Please check the client logs and the Swift MEAP™ server address that was returned to the client.  Please search the logs for: ActivationResponse

A sample line from a log file with the Activation Response is as follows:

2014-08-21 09:41:26.422 disconnectedmobilesales[11154:707] -[ActivationViewController activateUsingReturnData:] [Line 1154] Response = <?xml version="1.0" encoding="UTF-8"?>
<ActivationResponse><Status>0</Status><Description></Description><Protocol>https</Protocol><ServerName>swiftmeap.ienterprises.com</ServerName><Port>443</Port><Context>SwiftMEAP</Context><ConnectionMode>BIS</ConnectionMode></ActivationResponse>

The  <Protocol>, <ServerName>, <Port> and <Context> can be used to check the address that the client will connect to.  In the example above, this is: https://swiftmeap.ienterprises.com:443/SwiftMEAP

The client will use this address for all communication with the Swift MEAP™ Server so it is critical this is correct.  In a Split Port server, the client uses the "Service" port to communicate with clients, please check that the address matches the public URL you intend to communicate over. 

Activation URL is incorrect - follow up actions

If the address returned is not the address you intended to register, please contact support with details of the changes you require. 

Include the activation address, server address and the ports you are using.  If you have identified a specific error in registration, please detail where you can see the error.  iEnterprises will then correct the activation record.

If the address returned was correct, please move to the next step

The client cannot connect to the server URL

This occurs if the client was returned an address from the activation server, but could not connect to the address identified.  It is possible that if you have an internet connection and the server registration details have been checked, that you have another networking issue.  In the example above, we identified the server address as: https://swiftmeap.ienterprises.com:443/SwiftMEAP

Please check the request / response sent to the server after activation (as detailed above).  When we attempt to connect, this is captured in the logs as: MEURLConnection

Sample from the logs with connection attempt:

2014-08-21 09:41:32.482 disconnectedmobilesales[11154:707] -[MEURLConnection initWithURL:delegate:AndPostXml:] [Line 57] xmlData p = <?xml version="1.0" encoding="UTF-8"?>
<DeviceRequest><Name>test</Name><Pwd>#####</Pwd><ActivationEmailId>dorian@swiftmeaptest.com</ActivationEmailId><ApplicationIdentifier>com.oraclecorp.internal.ent2.disconnectedmobilesales</ApplicationIdentifier><CustomerEmail>dorian@swiftmeaptest.com</CustomerEmail><Pin>BA39FD7C-264F-4750-9F10-5A60C1BB7BDF</Pin><Language>1</Language><CommunicationMode>BIS</CommunicationMode><Version>v2</Version><CompatibilityVersion>2</CompatibilityVersion></DeviceRequest>
2014-08-21 09:41:33.370 disconnectedmobilesales[11154:707] -[MEURLConnection connection:didFailWithError:] [Line 141] didFailWithError __ Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost." UserInfo=0x17dabb20 {NSErrorFailingURLStringKey=https://swiftmeap.ienterprises.com:443/SwiftMEAP/CRMRecords, NSErrorFailingURLKey=https://swiftmeap.ienterprises.com:443/SwiftMEAP/CRMRecords, NSLocalizedDescription=The network connection was lost., NSUnderlyingError=0x17daf6e0 "The network connection was lost."}

Searching for MEURLConnection, we can see a didFailWithError response.  This clearly shows the URL that the device attempted to connect to in the NSErrorFailingURLStringKey.

Open a browser on the device, enter the URL that we attempted to connect to (example shown was): https://swiftmeap.ienterprises.com:443/SwiftMEAP/CRMRecords

This will discover if the device has network connectivity to the server.  You should see 'EmptyBisResponse' displayed, if you get any kind of error, such as 404 or server not found, the device cannot connect to the specified URL. 

The client cannot connect to the server - follow up actions

Is the URL available within your network from a non-mobile device?  Is the Swift MEAP™ server actually running and accessible (if not, please restart)?

Are you using a split port server and are service / console ports configured correctly?

If you cannot access the URL and your Swift MEAP™ server is running, you will need to contact your networking administrators to check that the URL is routing correctly, that requests are being forwarded and that the ports used are open.  You may also want to check any IP restrictions / VPN requirements or other networking access restrictions in place.

If the URL is not accessible outside of your network, we cannot use it for communication.  The application requires a URL that we can poll from a device to retrieve updates, this is typically not an issue with the Swift MEAP™ server or client, but a routing issue.

If all previous steps have been exhausted, please send full details, including any routing/access restrictions you have in place.  Please also capture server configuration, installation logs and client logs before submitting a support ticket.