Troubleshooting

"launchable verify" failure

Firewalls and static IP addresses

If you receive an error like this one, then you'll need to configure your firewall to allow traffic to api-static.mercury.launchableinc.com:

$ launchable verify
unable to post to https://api.mercury.launchableinc.com/...

$ launchable record build
...
Exception in thread "main" java.net.UnknownHostException: api.mercury.launchableinc.com: No address associated with hostname

If you need to interact with the API via static IPs, first set the LAUNCHABLE_BASE_URL environment variable to https://api-static.mercury.launchableinc.com.

The IP for this hostname will be either 13.248.185.38 or 76.223.54.162 which you can add to your firewall settings.

Proxies

If your CI server sits behind a proxy, you can tell the CLI to use it by setting the HTTP_PROXY and/or HTTPS_PROXY environment variables. For example:

export HTTP_PROXY="http://10.10.1.10:3128"
export HTTPS_PROXY="http://10.10.1.10:1080"

SSL certificate verification error

If you get an error like this:

SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate 

It is an indication that your system is lacking the root CA certificates. See the documentation for Requests, which the CLI uses under the hood, for how it looks up certificates. Also check out Stack Overflow posts like this where people discusses various remedies.

If all else fails, use the --skip-cert-verification option of the Launchable CLI to altogether bypass the SSL certificate check process. This means you are susceptible to MITM attacks, so use it with caution.

Missing Git object during commit collection

During record build or record commit , you might encounter errors like this:

Warning: 5730667 is missing. Skipping diff calculation for f2244ec -> 20630e5.

This warning indicates that a git object (typically a "blob", which stores a file) is missing from the local clone, and that prevented us from calculating a diff between the two commits listed. This is typically a result of Git shallow clone or Git partial clone.

Launchable will continue to function without this information, hence this is a warning; Predictive test selection will run with limited set of information, which will hurt the performance by unknown amount. If you are only seeing this sporadically, we suggest you simply ignore this warning.

Getting rid of this warning involves tweaking the git-clone or git-fetch operations to ensure enough of the relevant Git objects are made available locally. For example,

  • CI systems often use --depth 1 to just fetch the very latest commit and that alone. Increase this number should help, say --depth 32

  • GitHub Action actions/checkout uses --filter=blob:none when you choose to do a sparse checkout. Use filter: none to override this.