A SAS® Visual Analytics report might return "An error was encountered contacting the server (404 Request failed with status code 404)"


A SAS Visual Analytics report might return a pop-up message similar to the following in some situations:

 An error was encountered contacting the server (404 Request failed with status code 404)  

A network trace shows that the failed request is to the reportData service, and the response displays a message similar to the following:

{"errorCode":15343,"message":"unable to find file - ec0ec386-23cc-4551-adb0-5f24470fe7ca_ec0ec386-23cc-4551-adb0-5f24470fe7ca_c44 - dd508.csv"

This issue is often caused by an issue in the Redis service. You can confirm whether the issue is in the Redis service by accessing the following URL: https://{servername}/reportData/cacheHello 

Note: In the URL, {servername} would be the same as the server in the SAS Visual Analytics URL.

If Redis is the culprit, this URL returns the following:

cacheHello - Redis test Failed: - GET from Redis cache failed : ReportData: testRedis : calling GETs resulted in null value(s) for key and/or value.

Workaround

For SAS® Viya® Stable 2024.12 and later, do the following:

  1. Scale the sas-redis-server StatefulSet to 0.
  2. Delete the PVCs associated with SAS Redis Server pods.
  3. Scale the sas-redis-server StatefulSet to 1.

For SAS® Viya® Stable 2024.11 and earlier, do the following:

  1. Scale the SAS Redis Operator to 0.
  2. Delete the PVCs associated with SAS Redis Server pods.
  3. Scale the SAS Redis Operator to 1.  

Long-Term Solution

The root cause of this issue is due to missing requirement: block storage. This issue is described in the Persistent Storage Volumes, PersistentVolumeClaims, and Storage Classes section of the SAS® Viya® Platform Operations guide:

SAS and Redis recommend using a block storage device for Redis persistent storage. The Redis documentation recommends "enterprise-grade SANs or cloud environments such as EBS, Azure Managed Disks, or GCP persistent disks." For more information, see Use persistent volumes in Redis Enterprise clusters.

The long-term solution is to implement block storage for the SAS Redis Server as described in Use persistent volumes in Redis Enterprise clusters.