Debugging and resolving NSO service errors

A reference for common NSO/NCS error messages encountered during YANG and service development, with root causes and fixes.


Should be of type path-arg

In this case make sure your XPATH does not have a hardcoded variable.

yang/new_l2vpn.yang:60: error: bad argument value "/ncs:devices/ncs:device{PE11}/ncs:config/ios:interface/ios:GigabitEthernet{1}/ios:name", should be of type path-arg

error: the leafref refers to non-leaf and non-leaf-list node

yang/new_l2vpn.yang:38: error: the leafref refers to non-leaf and non-leaf-list node 'FastEthernet' in module 'tailf-ned-cisco-ios' at /opt/ncs/packages/neds/cisco-ios/src/ncsc-out/modules/yang/tailf-ned-cisco-ios.yang:34121

Ensure your XPath points to a leaf within the list. In this case the correct target is ios:name:

path "/ncs:devices/ncs:device/ncs:config/ios:interface/ios:GigabitEthernet/ios:name";`

The error occurs when the path stops at the list node itself, rather than pointing to a leaf within it:

path "/ncs:devices/ncs:device/ncs:config/ios:interface/ios:GigabitEthernet";

The key distinction: items like name, negotiation, and description are leaves within a list — the XPath must end at one of those leaves.


XPath error: Invalid namespace prefix: ios

yang/circuit.yang:57: error: XPath error: Invalid namespace prefix: ios
make: *** [../load-dir/circuit.fxs] Error 1

Solution :

Import the required module:

import tailf-ned-cisco-ios {
   prefix ios;
}

And add the yang path below in Makefile.

## Uncomment and patch the line below if you have a dependency to a NED
## or to other YANG files
# YANGPATH += ../../<ned-name>/src/ncsc-out/modules/yang \
#       ../../<pkt-name>/src/yang

YANGPATH += ../../cisco-ios/src/ncsc-out/modules/yang

Aborted: no registration found for callpoint learning_defref/service_create of type=external

This error occurs when you perform a commit or commit dry-run. At this stage, the YANG model is merged with the corresponding XML definition.

admin@ncs(config-link-PE21)# commit dry-run
Aborted: no registration found for callpoint learning_defref/service_create of type=external
admin@ncs(config-link-PE21)# exit

Solution :

Make sure that in the corresponding XML code , the servicepoint name is correct.

<?xml version="1.0" encoding="UTF-8"?>
<config-template xmlns="http://tail-f.com/ns/config/1.0" servicepoint="learning_defref">

info [l2vpn-template.xml:2 Unknown servicepoint: l2vpn]

This error occurs when the src folder has not been compiled with make. Without running make, the XML template cannot locate the service entry point.

reload-result {
    package l2vpn
    result false
    info [l2vpn-template.xml:2 Unknown servicepoint: l2vpn]
}

Solution :

Run the make command in the src folder.


Another Set of error Messages

/opt/ncs/packages/neds/cisco-iosxr/src/ncsc-out/modules/yang/tailf-ned-cisco-ios-xr.yang:17988: warning: Given dependencies are not equal to calculated: ../end-marker, ../start-marker. Consider removing tailf:dependency statements.
/opt/ncs/packages/neds/cisco-iosxr/src/ncsc-out/modules/yang/tailf-ned-cisco-ios-xr.yang:26306: warning: when tailf:cli-drop-node-name is given, it is recommended that tailf:cli-suppress-mode is used in combination. using tailf:cli-drop-nodename in a list child without using tailf:cli-suppress-mode on the list, might lead to confusing behaviour, where the user enters the submode without being able to give further configuration.
yang/learning_defref.yang:55: warning: Given dependencies are not equal to calculated: ../router_name, /ncs:devices/ncs:device/ncs:name, /ncs:devices/ncs:device/ncs:device-type/ncs:cli/ncs:ned-id. Consider removing tailf:dependency statements.
yang/learning_defref.yang:68: warning: Given dependencies are not equal to calculated: ../router_name, /ncs:devices/ncs:device/ncs:name, /ncs:devices/ncs:device/ncs:device-type/ncs:cli/ncs:ned-id. Consider removing tailf:dependency statements.

These are warnings from the compiler about dependency annotations. Start with the learning_defref lab and analyze each warning in context.


To remove a package from NSO, delete it from the packages directory and then run packages reload. If the package has active namespaces, the reload must be forced:

admin@ncs# packages reload
Error: The following namespaces will be deleted by upgrade:
l2vpn: http://com/example/l2vpn
If this is intended, proceed with 'force' parameter.
admin@ncs# packages reload force

>>> System upgrade is starting.
>>> Sessions in configure mode must exit to operational mode.
>>> No configuration changes can be performed until upgrade has completed.
>>> System upgrade has completed successfully.
reload-result {
    package cisco-ios
    result true
}
reload-result {
    package cisco-iosxr
    result true
}

Aborted: no registration found for callpoint l2vpn/service_create of type=external

This error points to ncs-run/packages/<service-name>/template/<service-name>-template.xml. Check that the file exists and contains no syntax errors.

admin@ncs(config-l2vpn-CE11-CE21)# commit dry-run
Aborted: no registration found for callpoint l2vpn/service_create of type=external

* make sure you perform `package reload`

Written by

Vikas Srivastava

Customer facing trusted advisor with expertise in cloud security, data center infrastructure, and automation. CCIE certified in Security and Data Center, AWS Solutions Architect, and passionate about simplifying DevOps workflows using AI/ML.