Troubleshooting the Watson OpenScale service

You can use the following techniques to work around problems with IBM Watson OpenScale.

When I use AutoAI, why am I getting an error about mismatched data?

You receive an error message about mismatched data when using AutoAI for binary classification. Note that AutoAI is only supported in IBM Watson OpenScale for IBM Cloud Pak for Data.

For binary classification type, AutoAI automatically sets the data type of the prediction column to boolean.

To fix this, implement one of the following solutions:

Why am I getting errors during model configuration?

The following error messages appear when you are configuring model details: Field feature_fields references column <name>, which is missing in input_schema of the model. Feature not found in input schema.

The preceding messages while completing the Model details section during configuration indicate a mismatch between the model input schema and the model training data schema:

To fix the issue, you must determine which of the following conditions is causing the error and take corrective action: If you use IBM Watson Machine Learning as your machine learning provider and the model type is XGBoost/scikit-learn refer to the Machine Learning Python SDK documentation for important information about how to store the model. To generate the drift detection model, you must use scikit-learn version 0.20.2 in notebooks. For all other cases, you must ensure that the training data column names match with the input schema column names.

Why are my class labels missing when I use XGBoost?

Native XGBoost multiclass classification does not return class labels.

By default, for binary and multiple class models, the XGBoost framework does not return class labels.

For XGBoost binary and multiple class models, you must update the model to return class labels.

Why are the payload analytics not displaying properly?

Payload analytics does not display properly and the following error message displays: AIQDT0044E Forbidden character " in column name <column name>

For proper processing of payload analytics, Watson OpenScale does not support column names with double quotation marks (“) in the payload. This affects both scoring payload and feedback data in CSV and JSON formats.

Remove double quotation marks (“) from the column names of the payload file.

Error: An error occurred while computing feature importance

You receive the following error message during processing: Error: An error occurred while computing feature importance.

Having an equals sign (=) in the column name of a dataset causes an issue with explainability.

Remove the equals sign (=) from the column name and send the dataset through processing again.

Why are some of my active debias records missing?

Active debias records do not reach the payload logging table.

When you use the active debias API, there is a limit of 1000 records that can be sent at one time for payload logging.

To avoid loss of data, you must use the active debias API to score in chunks of 1000 records or fewer.

Watson OpenScale does not show any available schemas

When a user attempts to retrieve schema information for Watson OpenScale, none are available. After attempting directly in DB2, without reference to Watson OpenScale, checking what schemas are available for the database userid also returns none.

Insufficient permissions for the database userid is causing database connection issues for Watson OpenScale.

Make sure the database user has the correct permissions needed for Watson OpenScale.

A monitor run fails with an OutOfResources exception error message

You receive an OutOfResources exception error message.

Although there’s no longer a limit on the number of rows you can have in the feedback payload, scoring payload, or business payload tables. The 50,000 limit now applies to the number of records you can run through the quality and bias monitors each billing period.

After you reach your limit, you must either upgrade to a Standard plan or wait for the next billing period.

After re-installing Watson Machine Learning, everything appears to work fine, but no payloads are reaching Watson OpenScale

None of the payload from Watson Machine Learning is making it to Watson OpenScale. No scoring is taking place.

Any time that Watson Machine Learning is installed after Watson OpenScale, it is impossible to establish proper linkage between the two services. The wmlkafkaconfigmap file is missing a broker configuration and that can only be established by installing Watson OpenScale after Watson Machine Learning.

If you uninstall and then re-install Watson Machine Learning, you must also uninstall and re-install Watson OpenScale. This may lead to loss of data and configuration settings.

When creating a subscription, why do I get an error?

The following error applies to the following IBM Watson OpenScale for IBM Cloud Pak for Data versions: 2.1.0.2, 2.5.0, and 3.0.x. You may see the following error display: Action Create Payload Tables has failed: Invalid token.

In addition to that UI message, the dashboard service log might contain the following entry:

[ERROR] [aiops-dashboard] [configuration-routes] {"error":"Unexpected status code 500 from PUT API http://ai-open-scale-ibm-aios-nginx-internal/v1/data_marts/00000000-0000-0000-0000-000000000000/service_bindings/999/subscriptions/093ee84d-5a59-49fb-a367-1932ad3403df/configurations/payload_logging","statusCode":500,"globalTransactionId":"c3789a70-de41-46a2-979f-890c07eaad98","errors":[{"code":"AIQCS0046E","message":"Action Create Payload Tables has failed: Invalid token"}]}

The configuration service log might contain the following entry:

ApiRequestFailure: Failure during payload logging setup. (PUT https://icpd-aios-cluster1.cpolab.ibm.com:31843/v1/data_marts/00000000-0000-0000-0000-000000000000/service_bindings/999/subscriptions/093ee84d-5a59-49fb-a367-1932ad3403df/configurations/payload_logging) Status code: 500, body: {“errors”:[{“code”:“AIQCS0046E”,“message”:“Action Create Payload Tables has failed: Invalid token”}], “trace”:“N2RmNWViMTItMTc4Zi00MWM5LTkyMmUtZDEwYzg1NGJmZDA0”}

The access token used by the payload logging, configuration, and datamart processes has become invalid. Restarting these processes will generate a new, valid token.

When this happens, it can be resolved by restarting the following pods:

Missing deployments

A deployed model does not show up as a deployment that can be selected to create a subscription.

There are different reasons that a deployment does not show up in the list of available deployed models. If the model is not a supported type of model because it uses an unsupported algorithm or framework, it won’t appear. Your machine learning provider might not be configured properly. It could also be that there are issues with permissions.

Use the following steps to resolve this issue:

  1. Check that the model is a supported type. Not sure? For more information, see Supported machine learning engines, frameworks, and models.
  2. Check that a machine learning provider exists in the Watson OpenScale configuration for the specific deployment space. For more information, see Deployment spaces.
  3. Check that the CP4D admin user has permission to access the deployment space.

Connection issue from IBM Watson OpenScale for IBM Cloud Pak for Data to IBM Watson Machine Learning

You receive the following error message while attempting to establish a connection between IBM Watson OpenScale for IBM Cloud Pak for Data and IBM Watson Machine Learning: Error: Unable to connect to local Watson Machine Learning from OpenScale:

You cannot connect to the Watson Machine Learning instance because of an issue with the token.

Use the following steps to resolve this issue:

  1. Check whether the ICP_WML_TOKEN value in the discovery instance is populated by running the following command:

    kubectl -n <namespace>  exec -it $(kubectl get pod | grep "aiopenscale-ibm-aios-ml-gateway-discovery" | awk '{print $1}') -- env | grep ICP_WML_TOKEN
    

    output:

    ICP_WML_TOKEN=tsG3UMLF7esl4oDWfMGbIhm6IkrlkmYSirYy2UgzNhiItv8xofkj0bbj8zSxR27FTa1AG9R6bxWernMBrtUNasampletokennotcapableofbeingused92837cjqoe8r
    

    Important: If the ICP_WML_TOKEN value is empty (ICP_WML_TOKEN=), continue with the following steps. Otherwise, you must reach out to IBM Support for guidance.

  2. Generate a new Watson Machine Learning token by running the following command:

    user_pwd_token=$(printf %s <user>:<password> | base64)
    
    curl -k --request GET --url <CPD Web Console URL>/v1/preauth/validateAuth --header "authorization: Basic $user_pwd_token"
    

    Where <user>:<password> is a valid user name and password for the Cloud Pak for Data cluster.

  3. Use the accessToken from the previous output to run the following command:

    curl -k --request POST --url <CPD Web Console URL>/api/v1/usermgmt/v1/usermgmt/getTimedToken --header 'authorization: Bearer accessToken_from_previous_step' --header 'lifetime: 87600'
    
  4. Encode the accessToken value from previous step to base64 format:

    printf %s 'accessToken_from_previous_step' | base64
    
  5. Edit the secret and use the encoded value:

    kubectl -n <namespace> edit secret ibm-aios-icp4d-token
    
  6. Edit the file to add the encoded value to the following field:

    data:
      token: "encoded_value_from previous_step"
    
  7. Restart all Watson OpenScale pods by running the following command:

    kubectl -n <namespace> delete pods -l app=ibm-aios
    
  8. Check whether the ICP_WML_TOKEN value in the discovery instance is populated by running the following command:

    kubectl -n <namespace>  exec -it $(kubectl get pod | grep "aiopenscale-ibm-aios-ml-gateway-discovery" | awk '{print $1}') -- env | grep ICP_WML_TOKEN