Occasional failures to set parameters via API

I am getting a few random errors across several objects through the API. Here is a simple one…

[
    {
        "_id": "63ab443e286c2915fd21f673",
        "name": "setParameterValues",
        "parameterValues": [
            [
                "InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.WPAAuthenticationMode",
                "WPA2WPA3PSKAuthentication",
                "xsd:string"
            ],
            [
                "InternetGatewayDevice.LANDevice.1.WLANConfiguration.5.WPAAuthenticationMode",
                "WPA2WPA3PSKAuthentication",
                "xsd:string"
            ]
        ],
        "device": "D8EFCD-G%2D240W%2DB-ALCLB36XXXXX",
        "timestamp": "2022-12-27T19:15:10.749Z"
    }
]

As a result I get this error on one of the parameters. I can send this again and it succeeds (the target object exists and I can set it in the UI)

[
    {
        "_id": "D8EFCD-G%2D240W%2DB-ALCLB36XXXXX:task_63ab443e286c2915fd21f673",
        "provisions": "[[\"value\",\"InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.WPAAuthenticationMode\",\"WPA2WPA3PSKAuthentication\"],[\"value\",\"InternetGatewayDevice.LANDevice.1.WLANConfiguration.5.WPAAuthenticationMode\",\"WPA2WPA3PSKAuthentication\"]]",
        "timestamp": "2023-01-03T22:36:41.809Z",
        "code": "cwmp.9003",
        "message": "Invalid arguments",
        "detail": {
            "faultCode": "9003",
            "faultString": "Invalid arguments",
            "setParameterValuesFault": [
                {
                    "parameterName": "InternetGatewayDevice.LANDevice.1.WLANConfiguration.5.WPAAuthenticationMode",
                    "faultCode": "9007",
                    "faultString": "Invalid parameter value"
                }
            ]
        },
        "retries": 11,
        "device": "D8EFCD-G%2D240W%2DB-ALCLB36XXXXX",
        "channel": "task_63ab443e286c2915fd21f673"
    }
]

Thoughts on what to look at?

9000 series errors are client errors. In this case, it means you are trying to set a parameter to value that is not permitted. According to the spec, WPAAuthenticationMode is allowed to be one of:

  • PSKAuthentication
  • EAPAuthentication (OPTIONAL)

Understand that the spec has those simple enums. The value I am sending is a vendor specific value. (the great thing about standards is there are so many to choose from :slight_smile: )

There are other settings this happens on which are exactly to standards.

It is interesting that this value is accepted on one node and not the other.

I’ll try to figure out on the ONT itself but interesting that the Genie UI and the CPE UI accept this value but occasionally the API route does not work.

I suspect a vendor bug and will work forward on that basis.

The only way I’ve gotten vendors to fix their crap is create incredibly detailed defect reports. Lots of logs and pointing back to the spec.

You will want to turn on debug for the specific device you are having issues with (Admin → Config → new config. Key: cwmp.debug, Value: DeviceID.ID = "<YOUR_DEVICE_ACS_ID>"). Then try everything again. The log will be in genieacs-cwmp-debug.yaml (or what ever you have called it).

fantastic. That is far more focused that the logging I was going to turn on. thank you for the tip.