VNA Cisco ACI Alarms Not Visible Due to ClassNotFoundException: AciPaginateFunction
search cancel

VNA Cisco ACI Alarms Not Visible Due to ClassNotFoundException: AciPaginateFunction

book

Article ID: 446495

calendar_today

Updated On:

Products

Network Observability

Issue/Introduction

After installing or upgrading to DX NetOps Virtual Network Assurance (VNA) 24.3.9 and adding the Cisco ACI Plugin:

  • Inventory devices are visible, but no alarms are appearing in Spectrum or the VNA Gateway.
  • The oc.log file shows a persistent error: java.lang.ClassNotFoundException: AciPaginateFunction
  • Secondary symptoms include HTTP 400 Bad Request errors in the logs when VNA attempts to subscribe to WebSocket notifications (e.g., faultInfo.json) from the Cisco APIC

Environment

  • Product: DX NetOps Virtual Network Assurance (VNA)
  • Release: 24.3.9
  • Plugin: Cisco ACI

Cause

A code regression in the VNA 24.3.9 ACI Plugin installer. The internal PluginClassLoader expects a Groovy script named AciPaginateFunction.groovy to handle data pagination. However, the file is incorrectly named AciEndPointPaginate.groovy on the physical disk. Because the loader cannot find the expected filename, it fails to register the class, causing a cascading failure in API polling and alarm subscriptions.

Resolution

As a workaround to resolve this issue, you must manually rename the Groovy script on the VNA server to match the expected class name.

  1. Log in to the VNA server instance (or container).
  2. Navigate to the ACI plugin repository directory: cd /opt/ca/VNA/collector/ACI_*/repository/TIM-INF/groovy/scripts/ (Note: Replace ACI_* with your specific engine ID directory if multiple engines exist.)
  3. Rename the file using the following command: mv AciEndPointPaginate.groovy AciPaginateFunction.groovy
  4. Corrected Device Configuration Endpoints
      • An erroneous space was removed from the subscription endpoints. 
        • Path: /opt/CA/VNA/plugins/ACI Plugin/opencollector/repository/deviceConfig
        • Updated Endpoints: Removed space marked in Red 

          FaultSubscriptionURLEndPoint:/api/class/faultInfo.json?query-target-filter=ge(faultInst.created EVENT_FILTER_EXP)&subscription=yes, EventConfigSubscriptionURLEndPoint:/api/class/aaaModLR.json?query-target-filter=ge(aaaModLR.created EVENT_FILTER_EXP)&order-by=aaaModLR.created|desc&page=0&page-size=25000&subscription=yes, EventRecordSubscriptionURLEndPoint:/api/class/eventRecord.json?query-target-filter=ge(eventRecord.created EVENT_FILTER_EXP)&order-by=eventRecord.created|desc&page=0&page-size=25000&subscription=yes,

  5. Restart the VNA wildfly service: systemctl restart wildfly (or use the appropriate service command for your environment).
  6. Verify in the oc.log that the ClassNotFoundException no longer appears during the next poll cycle. Alarms should begin to flow shortly after a successful poll.