Network Management
Node Details Page Fails to Load Due to Reserved Keyword in SWQL Query in SolarWinds Platform
The Node Details page in SolarWinds fails to load and throws a TargetInvocationException when accessed. The issue disrupts user access to node-specific information through the web interface. The article explains and covers how to address the issue.
First published date
Last published date
Overview
Clicking on a node within the SolarWinds web console may lead to an error instead of the expected Node Details page.
Error in logs shows:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> SolarWinds.Orion.Web.InformationService.SwisQueryException:
mismatched input 'Limitation' expecting 'Identifier' in Select clause
This behavior is traced to a custom SWQL query used in the view or resource associated with the Node Details page. The query incorrectly used the term Limitation as a column alias, which conflicts with SolarWinds' reserved keywords in SWQL.
The issue is not immediately obvious from the UI alone, making it difficult to troubleshoot without examining the query itself or reviewing backend logs. Once the alias Limitation is renamed to something like NodeLimitation, the query executes successfully, and the page renders as expected.
This highlights the importance of avoiding reserved words when creating custom SWQL queries in SolarWinds. It also emphasizes the need for robust query validation and testing when modifying views or resources in production environments.
Product section
Cause
The error is triggered by a custom SWQL query associated with the Node Details page. Specifically, the query uses Limitation as a column alias.
In SolarWinds SWQL, Limitation is a reserved keyword related to account restrictions. Using it as an alias in the SELECT clause causes a syntax parsing failure, which leads to a SwisQueryException. This exception bubbles up as a TargetInvocationException when the web interface tries to render the page.
Resolution
The issue is resolved by removing the custom property named Limitation from the environment. Since Limitation is a reserved keyword in SWQL, its presence as a custom property leads to a conflict during query execution.
Once the custom property is removed, the system-generated SWQL query no longer includes the conflicting alias, allowing the Node Details page to load successfully.
To avoid similar issues in the future, avoid naming custom properties with reserved keywords used by SWQL or SQL.