Alteryx Designer Knowledge Base

Definitive answers from Designer experts.

Connection Errors with Python-based Connector Tools (when running the worklfow)

DaveF
Alteryx Alumni (Retired)
Created

Issue

 

When using a Python-based Connector Tool (SharePoint Files, Power BI, Tableau Output, OneDrive, Salesforce Input, Azure Data Lake, Box Input and Output, etc) a variety of errors can appear when the workflow is run (at runtime). The GUI in designer will typically connect as expected. 

If the user is receiving one of these errors below, please check the steps below


Failed to authenticate.

Connection to platform was not successful.

Failed to connect to platform

Older versions of Connector Tools will have an error similar to this:
Error establishing connection: HTTP error: SSLError(MaxRetryError("HTTPSConnectionPool(host='test.salesforce.com', port=443): Max retries exceeded with url: /path/file (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)'),))",),)

 

Environment

 

  • Alteryx Designer and Server
  • Connector tools
    • Specific to Python-based Connectors

 

Cause

 

The root certificate of the host you are trying to connect to is not in the Python-based tool's keystore, so a trusted connection cannot be made. This can happen for a variety of reasons, the most common is when there is a private CA Certificate on the internal network (example Netskope), VPN type solutions (example Zscaler), or proxy with a private CA Certificate.  

 

Solution

 

  1. In a browser, go to the login page for the Data source related to the Connector Tool you are trying to use
  2. Click the lock icon next to the URL in the browser, then click Certificate. These steps may be different on different browsers.
clipboard_image_1.png
  1. On the Certification Path tab, click the Root Certificate, then click View Certificate
  2. Then, click Details, then Copy to File
clipboard_image_3.png
  1. Proceed through the Wizard, choosing Base-64 encoded format.
clipboard_image_4.png
  1. Open the exported certificate and copy it's contents.
  2. Append the contents from the exported cert to the cacert.pem file located in the tool's certifi folder. For newer versions of the tools, there will be three folders, and the cacert.pem is in the .venv folder.
    • Example for Admin installs:C:\ProgramData\Alteryx\Tools\TOOLNAME_vX.x.x\Lib\site-packages\certifi\cacert.pem
    • Example for Non-Admin installs:C:\Users\{USERNAME}\AppData\Roaming\Alteryx\Tools\TOOLNAME_vX.x.x\Lib\site-packages\certifi\cacert.pem
    • Example for newer tools: {USERNAME}\AppData\Roaming\Alteryx\Tools\TOOLNAME_vX.x.x_venv\Lib\site-packages\certifi\cacert.pem

 

Additional Resources

 



No ratings
Comments
diaslemuel
7 - Meteor

I am able to do this till point 9. Point 10 isnt found at  the said path. Also searching for cacert.pem is found in other folders

Stu1
6 - Meteoroid

I am having the same issue as the previous comment in that I have neither the file path and the certificate is exported with a file type .cer rather than .pem.

 

When I create the above file path and put the certificate in there using the above instructions then I get the same error. I am specifically trying to import the python package 'pyeasyga', importing of numpy and pandas is fine but then I have them installed somewhere on my machine anyway.

 

Can anyone advise?

gade_joseph_r
10 - Fireball

@DaveF  Did exactly as per provided solution ,still not working . 

gade_joseph_r
10 - Fireball

@DaveF 

 

Found one more solution. Looks like it’s a Proxy server issue in enterprise env's . I tested and its working  .

 

1.        Open your Salesforce input or output install location or look for sf_proxy.py in your C:/Drive

    • Example for Admin installs: C:\ProgramData\Alteryx\Tools\SalesforceInput_v4.0.0\engine\sf_proxy.py
    • Example for Non-Admin installs: C:\Users\{USERNAME}\AppData\Roaming\Alteryx\Tools\ SalesforceInput_v4.0.0\engine\sf_proxy.py

version number may be different based on what you installed 

2.        LOOK/search for this text

else:

os.environ['HTTP_PROXY'] = ''

os.environ['HTTPS_PROXY'] = ''

 

3)     put your Proxy host name in  between  quotes FOR HTTP AND HTTPS LIKE  'http://proxy.yourcompany.com:80'

 

See image below.

See image below . 

 

sfdc error proxy.jpg

 

 

Solution based out of https://stackoverflow.com/questions/47960157/sslerror-httpsconnectionpoolhost-www-quandl-com-port-44...

 
 

 

 

WeiJianWEE
5 - Atom

Thanks for the solution.

 

With regards to point 10, the certifi folder and cacert.pem are found in

c:\program files\alteryx\bin\miniconda3\pythontool_venv\lib\site-packages (0.5.5) instead.

 

Works well for me. 

chardvinas
5 - Atom

If exporting and adding the Root certificate into cacert.pem doesn't work. Try exporting all the certificates in the hierarchy (from the Root to the last child node) and add them all in cacert.pem. It worked for me.