Fault code 9003 - Invalid arguments

Hi guys,

I’m trying to provision a TP-Link router with GenieACS 1.2.5 with no lucky. When CPE contacts with ACS sending “0 BOOTSTRAP” event, ACS server sends propper provision code but always i get this error:

Channel has faulted; channel="wan_provision" retries=0 faultCode="cwmp.9003" faultMessage="Invalid arguments"

Provisioning code:

//Create instances
let interfaces = declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice.*", null, {path: 3});    
let instances = []

for (let i of interfaces) {          	
	let index = i.path.split(".")[4]            

//Provisioning VoIP interface
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice." + instances[2] +".WANIPConnection.*", {path: now}, {path: 1});
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice." + instances[2] +".WANIPConnection.1.AddressingType", {value: now}, {value: "DHCP"});
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice." + instances[2] +".WANIPConnection.1.ConnectionType", {value: now}, {value: "IP_Routed"});	
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice." + instances[2] +".WANIPConnection.1.Enable", {value: now}, {value: true});
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice." + instances[2] +".WANIPConnection.1.MaxMTUSize", {value: now}, {value: "1500"});
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice." + instances[2] +".WANIPConnection.1.NATEnabled", {value: now}, {value: false});
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice." + instances[2] +".WANIPConnection.1.Name", {value: 1}, {value: "VoIP"});

This same provisioning code works perfectly with a Huawei ONT device.

Any idea?

Thanks in advance!!

Have you tried manual reading and writing the settings to the device over the UI?
That’s usually the first step, wenn I get a new device. Most of the times, there are (small) changes needed for every device series.

Hi Jonas,

Yes i was try it.

If i manually create new instance in ONT from his own GUI i can read values and update it without problems from GenieACS but if i create the instance from genie using posted script i get always the 9003 error when try to set/update values.


I’m not sure to understand your code, but one thing caught my eye, why is has to be

+ instances[2] +

I’m referring to the “2” index value. Why is has to be 2? What if you receive less items on the array?

Recently I simulated a fault using a Huawei with the wifi password parameter:

declare( “InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.KeyPassphrase”, now, { value: “a” } );

and then I have run this on bash:

curl ‘http://yourACS:7557/faults/’ -X GET ; echo

it will give you details over which parameter failed. I know this is not going to fix the problem but perhaps it can point you to the right direction. Also, consider adding log() entries on your provision script. this bash script also may help to see those entries in realtime:

tail -n 200 -f /var/log/genieacs/genieacs-cwmp-access.log

Hi Rudy,

I’m using third index (2) because the ONT have 2 predefined WAN interfaces by default and i want to add a third instance.

When fails, log says that all SPV in the script fail with code 9003.


then run this

curl ‘http://yourACS:7557/faults/’ -X GET ; echo

and try to set a value of the failing parameters using GUI as suggested in the first reply to see what could be wrong, if the parameter is valid then perhaps it accept values in a specific format

Hi Rudy,

I’ve manually created a new wan instance from GenieACS UI, then i set only one parameter (AddressingType) for WANIPConnection and the same error ocurrs.

This is the output from curl:

		"message":"Invalid arguments",
			"faultString":"Invalid arguments",
				"faultString":"Internal error"


I just realized, I wonder if you can add the interface using GenieAcs GUI. Can you see the parameter under the GUI? May be that’s the real problem and not the value of the parameter.

Hi Rudy,

When i create a instance using GenieACS GUI, i can read all subtree values without problem. By default, ‘InternetGatewayDevice.WANDevice.1.WANConnectionDevice.3.WANIPConnection.1.AddressingType’ value is “Static” for example. When i try to change this value to “DHCP” i got 9003 error as i says in previous post.

This is a screenshot with a fresh instance created from GenieACS GUI. I can read values without problem of that instance but i can’t update it.

The error that occurs when i try to update value:


anothing test: log in into device’s administration web page and change the value for the device, then refresh it on the GenieACS GUI and see what happens.

I can’t change value on device because it’s like a “locked” state. This happens when i click on “edit” button:


As you can see, the ONT shows an empty box without possibility to edit any value.

If i click on edit over other wan instance, i can edit it without problems:

IMHO that’s the source of the problem and that’s why the CPE rejects the commands. At work, VLANs are created by commands from the OLT. Sorry I can’t be of more help. Perhaps other members of the forum can shred some light on this.

Thank you very much too!