Troubleshoot

Setup and connectivity

First, verify that both app references are bound:

CALL EXPERIAN_DATA_VALIDATION.CONFIG.register_reference(
  'experian_oauth_secret',
  'ADD',
  SYSTEM$REFERENCE(
    'SECRET',
    'EXPERIAN_DATA_VALIDATION_CONFIG.AUTH.experian_oauth_secret',
    'PERSISTENT',
    'READ'
  )
);

CALL EXPERIAN_DATA_VALIDATION.CONFIG.register_reference(
  'api',
  'ADD',
  SYSTEM$REFERENCE(
    'EXTERNAL_ACCESS_INTEGRATION',
    'experian_data_validation_api_integration',
    'PERSISTENT',
    'USAGE'
  )
);

If the references are correctly bound, verify the following:

  • The external access integration is enabled.
  • The network rule allows access to api.experianaperture.io.
  • The OAuth security integration uses the Experian token endpoint and valid client credentials.

The OAuth client is valid, but it does not include Address Validation entitlements. Contact your Experian account manager or Contact Support.

Make sure the relevant product has been configured and saved in the app. Address Validation needs a default country and dataset configuration, or a country override that maps to configured datasets.

For Address Validation, you can inspect the saved configuration:

CALL EXPERIAN_DATA_VALIDATION.CONFIG.get_address_config();

Bulk validation

Grant access on the source database, schema, table, or view to the installed application:

GRANT USAGE ON DATABASE SOURCE_DB TO APPLICATION EXPERIAN_DATA_VALIDATION;
GRANT USAGE ON SCHEMA SOURCE_DB.SCHEMA TO APPLICATION EXPERIAN_DATA_VALIDATION;
GRANT SELECT ON TABLE SOURCE_DB.SCHEMA.CONTACTS_TABLE TO APPLICATION EXPERIAN_DATA_VALIDATION;

Replace EXPERIAN_DATA_VALIDATION if the app was installed with a different application name.

Bulk source object names must use simple unquoted identifiers. If your table or column names need quotes, create a simple view with unquoted aliases and grant access on that view to the app.

The filter value used by Filter (optional) or by the where_clause parameter must contain only a filter expression. Do not include the WHERE keyword, statement separators, comments, or data-changing statements.

Use:

'is_active = TRUE'

Do not use:

'WHERE is_active = TRUE; DROP TABLE ...'

Bulk result tables are created in the app's RESULTS schema. The app normalizes dots, spaces, and hyphens in the requested output table name to underscores.

For example, EMAIL RESULTS-2026 is created as EXPERIAN_DATA_VALIDATION.RESULTS.EMAIL_RESULTS_2026.

Use Job dashboard or call:

CALL EXPERIAN_DATA_VALIDATION.JOBS.Status('<job_id>');

Check the last_error, completed chunks, and failed chunks. If jobs never start, confirm the app has the EXECUTE TASK and EXECUTE MANAGED TASK privileges requested during setup.

Open Monitoring to check whether jobs or chunks are waiting for service slots. You can also call:

SELECT *
FROM TABLE(EXPERIAN_DATA_VALIDATION.JOBS.Capacity());

Open Job dashboard and use Chunk-level drilldown for the job ID. The last error usually identifies whether the failure is caused by source table access, invalid identifiers, unsupported filters, address country configuration, API connectivity, or a provider-side response.

Use JOBS.Retry only after reviewing the error:

CALL EXPERIAN_DATA_VALIDATION.JOBS.Retry('<job_id>');

The app only retries failed chunks that were never started at Experian. This avoids additional provider cost for chunks that already started externally.

Address configuration

Address Validation needs a country that exists in the saved country_dataset_map. Configure the country and datasets on the Address Validation configuration page.

For bulk jobs, the optional country_column can override the default country per row. Values can be ISO3 codes or configured country names.

Open Country mappings and use Resolver to check how the source value resolves.

If source data contains country names rather than ISO3 codes, use Add or update mapping to add mappings:

CALL EXPERIAN_DATA_VALIDATION.CONFIG.UpsertCountryIsoMapping('United States of America', 'USA');
CALL EXPERIAN_DATA_VALIDATION.CONFIG.UpsertCountryIsoMapping('United Kingdom', 'GBR');

Review the effective mapping in Effective mappings:

SELECT country_name, country_iso, country_alpha2, source
FROM EXPERIAN_DATA_VALIDATION.CONFIG.country_iso_mapping
ORDER BY source, country_name;

The optional datasets_column accepts a dataset string, a comma-separated list, or a JSON array. If datasets are supplied without a row country, the job uses the configured default country.

Querying results

Single-record procedures return JSON as a string. Parse the response from the previous CALL before using JSON path expressions:

CALL EXPERIAN_DATA_VALIDATION.CONTACT.Email('support@example.com');

WITH response AS (
  SELECT PARSE_JSON($1) AS validation_json
  FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()))
)
SELECT validation_json:result:confidence::STRING AS confidence
FROM response;

Open Phone Validation configuration and disable premium options that are not required:

  • Include number porting information
  • Enable checking live status for US mobile numbers
  • Enable checking live status for GB landline numbers
Snowflake

Help