Hi,
I am running NPM 2025.4.2 and have added a Juniper Mist Cloud Orchestrator node using an API token. The integration appears to work (the orchestrator node is visible, Machine Type shows as "Juniper Mist Orchestrator", the correct site is selected, and the API token has Org Admin permissions), but wireless access points are not appearing in SolarWinds.
After enabling DEBUG logging on the declarative wireless poller, I found the root cause. The request path contains unresolved variable placeholders:
textRequest Path : '/api/v1/sites/${OrganizationId}/stats/devices/${AccessPointId}'
The variables ${OrganizationId} and ${AccessPointId} are never substituted with actual values, meaning the API call is sent to Mist with literal placeholder strings in the URL, which returns a 404. The correct Mist API endpoint for AP stats is /api/v1/sites/<SiteID>/stats/devices.
This results in the following error in Wireless.Declarative.PollersJobs_####.log:
textERROR SolarWinds.Orion.Declarative.Pollers.Polling.DeclarativeRestPoller - job failedSolarWinds.Orion.Declarative.Contract.Exceptions.PollerExecutionException: Poller execution failed. ---> SolarWinds.Orion.Declarative.Contract.Exceptions.MapPropertyException: Failed to pick source values from Path: '$..mac'
Additionally, I discovered that the Mist EU region endpoint (api.eu.mist.com) returns 404 on /api/v1/sites/<SiteID>/stats/devices/ with a trailing slash, while /api/v1/sites/<SiteID>/stats/devices without the trailing slash works correctly. This may be a secondary contributing issue.
Environment:
- NPM version: 2025.4.2
- Juniper Mist region: api.eu.mist.com (EU)
- Authentication: API token with Org Admin role
- All pre-checks pass: correct Org ID, correct Site ID, APs connected and visible in Mist portal
Note: This appears to be related to previously fixed bug case 01768169 ("When the response from a Juniper Mist device does not include a MAC address, polling the device no longer fails"), which was fixed in NPM 2024.4.1 / 2025.1. However the variable substitution failure I am seeing is a different and more fundamental issue — the API call is never correctly formed in the first place.
Has anyone else experienced this with NPM 2025.4.x and Juniper Mist, particularly on the EU region? Any workarounds would be greatly appreciated.