MongoServerError during a new TR181 device activation

Hello Guys!

I am trying to activate a new device on my ACS here, but i am receiveing an MongoServerError…

Tha CPE is a BluCastle “UNG221E” model, this is a TR181 device and the XML it sends to ACS is this:

<SOAP-ENV:Envelope
        SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:cwmp="urn:dslforum-org:cwmp-1-0">
        <SOAP-ENV:Header>
            <cwmp:ID
                SOAP-ENV:mustUnderstand="1">
                16051
                </cwmp:ID>
            </SOAP-ENV:Header>
        <SOAP-ENV:Body>
            <cwmp:Inform>
                <DeviceId>
                    <Manufacturer>
                        BLUCASTLE 
                        </Manufacturer>
                    <OUI>
                        8CBA25
                        </OUI>
                    <ProductClass>
                        UNG221E
                        </ProductClass>
                    <SerialNumber>
                        FTTH05B84220
                        </SerialNumber>
                    </DeviceId>
                <Event
                    SOAP-ENC:arrayType="cwmp:EventStruct[1]">
                    <EventStruct>
                        <EventCode>
                            2 PERIODIC
                            </EventCode>
                        <CommandKey>
                            </CommandKey>
                        </EventStruct>
                    </Event>
                <MaxEnvelopes>
                    1
                    </MaxEnvelopes>
                <CurrentTime>
                    2022-12-14T21:31:09+01:00
                    </CurrentTime>
                <RetryCount>
                    0
                    </RetryCount>
                <ParameterList
                    SOAP-ENC:arrayType="cwmp:ParameterValueStruct[8]">
                    <ParameterValueStruct>
                        <Name>
                            Device.RootDataModelVersionValue
                            </Name>
                        <Value
                            xsi:type="xsd:string">
                            1.1.1.1
                            </Value>
                        </ParameterValueStruct>
                    <ParameterValueStruct>
                        <Name>
                            Device.DeviceInfo.HardwareVersion
                            </Name>
                        <Value
                            xsi:type="xsd:string">
                            </Value>
                        </ParameterValueStruct>
                    <ParameterValueStruct>
                        <Name>
                            Device.DeviceInfo.SoftwareVersion
                            </Name>
                        <Value
                            xsi:type="xsd:string">
                            ECNT-SW-V1.0
                            </Value>
                        </ParameterValueStruct>
                    <ParameterValueStruct>
                        <Name>
                            Device.DeviceInfo.ProvisioningCode
                            </Name>
                        <Value
                            xsi:type="xsd:string">
                            </Value>
                        </ParameterValueStruct>
                    <ParameterValueStruct>
                        <Name>
                            Device.ManagementServer.ParameterKey
                            </Name>
                        <Value
                            xsi:type="xsd:string">
                            </Value>
                        </ParameterValueStruct>
                    <ParameterValueStruct>
                        <Name>
                            Device.ManagementServer.ConnectionRequestURL
                            </Name>
                        <Value
                            xsi:type="xsd:string">
                            http://179.104.54.92:7547/tr69
                            </Value>
                        </ParameterValueStruct>
                    <ParameterValueStruct>
                        <Name>
                            Device.ManagementServer.AliasBasedAddressing
                            </Name>
                        <Value
                            xsi:type="xsd:boolean">
                            0
                            </Value>
                        </ParameterValueStruct>
                    <ParameterValueStruct>
                        <Name>
                            </Name>
                        <Value
                            xsi:type="xsd:string">
                            </Value>
                        </ParameterValueStruct>
                    </ParameterList>
                </cwmp:Inform>
            </SOAP-ENV:Body>
        </SOAP-ENV:Envelope>

On my ACS logs(tail -f genieacs-cwmp-access.log) i only can see this message:
“2022-12-15T10:31:51.451Z [ERROR] ::ffff:179.104.54.92 8CBA25-UNG221E-FTTH05B84220: CPE already in session”

And looking at the Forum and other cases here, i found a comment to look at “journalctl -f | grep cwmp” and this is what i found:

Dec 15 10:28:49 acsplus genieacs-cwmp[253294]: 2022-12-15T10:28:49.408Z [ERROR] Uncaught exception; pid=253294 exceptionName="MongoServerError" exceptionMessage="The update path '._value' contains an empty field name, which is not allowed." exceptionStack="MongoServerError: The update path '._value' contains an empty field name, which is not allowed.\n    at /usr/local/lib/node_modules/genieacs/node_modules/mongodb/lib/operations/update.js:85:33\n        -> /usr/local/lib/node_modules/genieacs/node_modules/mongodb/src/operations/update.ts:174:44\n    at /usr/local/lib/node_modules/genieacs/node_modules/mongodb/lib/cmap/connection_pool.js:299:25\n        -> /usr/local/lib/node_modules/genieacs/node_modules/mongodb/src/cmap/connection_pool.ts:518:13\n    at /usr/local/lib/node_modules/genieacs/node_modules/mongodb/lib/sdam/server.js:212:17\n        -> /usr/local/lib/node_modules/genieacs/node_modules/mongodb/src/sdam/server.ts:371:13\n    at handleOperationResult (/usr/local/lib/node_modules/genieacs/node_modules/mongodb/lib/sdam/server.js:284:20)\n        -> /usr/local/lib/node_modules/genieacs/node_modules/mongodb/src/sdam/server.ts:456:14\n    at Connection.onMessage (/usr/local/lib/node_modules/genieacs/node_modules/mongodb/lib/cmap/connection.js:219:9)\n        -> /usr/local/lib/node_modules/genieacs/node_modules/mongodb/src/cmap/connection.ts:450:5\n    at MessageStream.<anonymous> (/usr/local/lib/node_modules/genieacs/node_modules/mongodb/lib/cmap/connection.js:60:60)\n        -> /usr/local/lib/node_modules/genieacs/node_modules/mongodb/src/cmap/connection.ts:256:56\n    at MessageStream.emit (events.js:314:20)\n    at processIncomingData (/usr/local/lib/node_modules/genieacs/node_modules/mongodb/lib/cmap/message_stream.js:132:20)\n        -> /usr/local/lib/node_modules/genieacs/node_modules/mongodb/src/cmap/message_stream.ts:193:14\n    at MessageStream._write (/usr/local/lib/node_modules/genieacs/node_modules/mongodb/lib/cmap/message_stream.js:33:9)\n        -> /usr/local/lib/node_modules/genieacs/node_modules/mongodb/src/cmap/message_stream.ts:70:5\n    at doWrite (_stream_writable.js:403:12)"
Dec 15 10:28:49 acsplus genieacs-cwmp[508]: 2022-12-15T10:28:49.505Z [ERROR] Worker died; pid=253294 exitCode=0
Dec 15 10:28:50 acsplus genieacs-cwmp[508]: 2022-12-15T10:28:50.024Z [INFO] Worker listening; pid=253343 address="::" port=7547

Can someone help me to understand whats is going on? and how can i solve this problem?

Any question, please let me know.

Thank you in advance!

coould it be the last one?

       <ParameterValueStruct>
                        <Name>
                            </Name>
                        <Value
                            xsi:type="xsd:string">
                            </Value>
                        </ParameterValueStruct>
                    </ParameterList>

no name on it, I guess that’s why Mongo complains.

I know nothing about that device, but I would try to reproduce the problem in a contained enviroment.

That was my first thought, which must be something related to that…
And if so, is there any way to fix this via ACS? or in this case I should speak directly with the manufacturer (BluCastle) for them to correct the information inside the TR069 inform?

Thanks a lot in advance!

Provide all the evidence to the mfgr and have them fix it. Workarounds for crappy implementations are sub-optimal. I’ve had luck getting mfgrs to fix their stuff by pointing to the exact line of the spec they are violating.