Agile Central - Connector: Unable to connect when using proxy

Document ID : KB000121617
Last Modified Date : 29/11/2018
Show Technical Document Details
Issue:
When running the connector with a proxy configuration, the connector is unable to connect to Agile Central and the following error is shown in the log:
[2018-11-03 22:02:39 Z] DEBUG : RallyEIF::WRK::RallyConnection.rescue in connect - StandardError: RallyAPI: - rescued exception - A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. - connect(2) for "proxy" port 80 (http://proxy:80) on request to https://rally1.rallydev.com/slm/webservice/v2.0/user with params {}
[2018-11-03 22:02:39 Z] ERROR : RallyEIF::WRK::RallyConnection.rescue in connect - Could not connect to Rally at https://rally1.rallydev.com/slm using APIKey credentials
Cause:
This is generally due to a proxy server that is unavailable while the connector is being run.

If you are using the connector under Windows, a common source of confusion is that a browser will still successfully connect to the Agile Central servers.  Please be aware that the connector does not honor the same proxy policy that is being supplied to the Internet Settings in the Windows Control Panel.  Therefore, a browser may connect successfully to the Agile Central servers, but the connector is unable to.  This is because the connector is based on Ruby which, due to its multi-operating system compatibility, does not look to the Windows settings to determine its path for network connectivity.
Resolution:
There is some troubleshooting that can be done using the curl tool.  Curl is a command line tool which, much like our connectors, will need to have the appropriate proxy server settings specified in its parameters.

Download and install curl for your OS here.  Linux users will probably already have curl installed.
Open a command line and run the following command:
curl --proxy <your.proxy.server> -I https://rally1.rallydev.com

A successful connection should appear as follows:
HTTP/2 200 
date: Wed, 28 Nov 2018 17:27:53 GMT
content-type: text/html; charset=UTF-8
set-cookie: __cfduid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; expires=Thu, 28-Nov-19 17:27:53 GMT; path=/; domain=.rallydev.com; HttpOnly
expires: Thu, 01 Jan 1970 00:00:00 GMT
x-xss-protection: 1; mode=block
set-cookie: JSESSIONID=qd-app-00xxxxxxxxxxxxxxxxxxxxxxxxxx.qd-app-00;Path=/;Secure;HttpOnly
vary: Accept-Encoding
p3p: CP="NON DSP COR CURa PSAa PSDa OUR NOR BUS PUR COM NAV STA"
cache-control: private,max-age=0,must-revalidate
strict-transport-security: max-age=31536000; includeSubDomains; preload;
set-cookie: SERVERID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; path=/
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
server: cloudflare
cf-ray: xxxxxxxxxxxxxxxx-DEN

Once you have curl working with the correct proxy settings, you may then apply those settings to the connector.  Please bear in mind it may be necessary to work with your networking team to establish the correct settings for your proxy server including address, port number and credentials.