Errors
This document lists all possible error messages you may encounter when using the Touca SDKs, along with their potential root causes and our recommendations for how to fix them.
Authentication
E01 auth_invalid_key
Authentication failed. API Key is not valid.
-
Check that your API Key is set and correct. See here for a refresher on how to find your API Key and API URL.
-
If you are using multiple configuration profiles, use
touca profile ls
to see which one is active andtouca config show
to check if it has the right content. -
If you are using environment variables
TOUCA_API_KEY
andTOUCA_API_URL
to set your API Key and API URL, check that those variables are set. -
Check that you can log into your account. It is possible that your account is logged or that your permission to submit test results to the specified team is revoked.
E02 auth_invalid_response
Authentication failed. The server returned invalid response.
- If possible, upgrade your server to the latest version. If not, downgrade your SDK to a version released around the same time as the server. If you have upgraded the server recently, ensure that you are using a recent SDK version.
E03 auth_server_down
Authentication failed. Server appears to be down.
- If you are using a self-hosted instance, check that you have set the API URL
to point to the API endpoint of your local server. As an example, if you can
access your server at
https://localhost:8080
, the API endpoint ishttps://localhost:8080/api
.
Configuration
E04 config_file_missing
Command-line option --config-file
does not point to a valid file.
E05 config_file_invalid
Command-line option --config-file
points to file with invalid content.
- Check that the specified configuration file exists, has valid JSON format, is
a JSON object, and has a top-level field named
touca
whose value is a JSON object.
E06 config_option_invalid
Configuration option has unexpected type.
-
The error message includes the name of the option with invalid type. Consult with the Reference API of your SDK to make sure you are using the option correctly.
-
In general, configuration flags such as
offline
andoverwrite
should be passed as boolean andtestcases
should be specified as a list of strings.
E07 config_option_missing
Configuration option is missing.
-
The error message includes the name of the missing option. Make sure you are passing the option somehow.
-
Certain configuration options have a different field name when specified in the configuration profile than when they are passed as command-line options. For example, command-line option
--save-as-binary
should be set assave_binary
in the configuration profile.
E08 config_option_sealed
The specified version is already submitted to the server.
-
When you submit test results for a given version of your code under test, to protect the integrity of your test results, the server "seals" the version immediately or after a period of time, depending whether you are using the built-in Touca test runner. See here to learn more about this behavior.
This error happens when you are submitting test results for a version that is already sealed by the server. If you are manually setting
version
(--revision
), try to pass a different value for this field. Alternatively, omit passing this option to let the server auto-increment the version number. See here to learn more about this behavior.
E09 config_option_fetch
The server did not find the next version or the list of test cases for one or more of the workflows under test.
- If possible, upgrade your server to the latest version. If not, downgrade your SDK to a version released around the same time as the server. If you have upgraded the server recently, ensure that you are using a recent SDK version.
E10 config_workflows_missing
No workflow is registered.
-
You may be calling the
run
function before registering anyworkflow
. See here for the typical structure of a Touca test. -
You are running
touca test
in a directory that has no Touca test to run.
Data Capturing
E11 capture_not_configured
Client not configured to perform this operation.
-
You are attempting to perform an operation using a client that is not configured yet.
For day to day use-cases, consider using the built-in test runner that removes the need for manually configuring the low-level library. If you have good reasons for not using the test runner, see here to learn how and when to call the
configure
function.
E12 capture_forget
You are asking the low-level client library to forget test results for a test case that was never declared. The error message includes the name of the test case.
- Make sure that you are only calling
forget_testcase
with a test case that was previously used to calldeclare_testcase
.
E13 capture_type_mismatch
You are performing an operation on a captured data point that expects the data point to have a type other than its actual type.
-
You are calling
add_array_element
on a data point that was previously captured with a type other than a list. -
You are calling
add_hit_count
on a data point that was previously captured with a type other than a number.
Submission
E14 transport_http
HTTP request failed.
The SDK failed to communicate with the server. The error message may include more information about the reason.
E15 transport_post
Failed to submit test results to the server.
-
For day to day use-cases, consider using the built-in test runner that removes the need for manually submitting the test results. If you have good reasons for not using the test runner, see here to learn how and when to call the
post
function. -
Before calling
post
, make sure you have declared at least one test case by callingdeclare_testcase
.
E16 transport_seal
Failed to manually seal the test results submitted for a given version.
-
For day to day use-cases, consider using the built-in test runner that removes the need for manually sealing the test results. If you have good reasons for not using the test runner, see here to learn how and when to call the
seal
function. -
Before calling
seal
, make sure you have submitted the test results by callingpost
.