# "Call-service error. extra keys not allowed" Help

**URL:** <https://discourse.nodered.org/t/call-service-error-extra-keys-not-allowed-help/75755>\
**Category:** General\
**Created:** [26 February 2023 10:25 UTC](https://discourse.nodered.org/t/call-service-error-extra-keys-not-allowed-help/75755 "2023-02-26T10:25:58Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![aperture1988](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/aperture1988/32/40681_2.png) [@aperture1988](https://discourse.nodered.org/u/aperture1988)\
**Post date:** [26 February 2023 10:25 UTC](https://discourse.nodered.org/t/call-service-error-extra-keys-not-allowed-help/75755/1 "2023-02-26T10:25:58Z")

</div>

Hi guys,

Im trying to setup a flow that will pull down the version number of the installed Node-Red package and store the information within an Input\_text helper within Home Assistant.

The command I am running seems to gather the information I need however when it attempts to update the input\_text entity I get the following error:

```auto
Call-service error. extra keys not allowed @ data['0']

```

The error seems to suggest that there is a character this is not allowed however I can't see what that might be.

 ![Screenshot 2023-02-26 at 10.24.11](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/0/f/0f40e2b26d1eb9aa59ef24ff3ecf910db89b2d8f.png)  
 ![Screenshot 2023-02-26 at 10.24.23](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/e/e/eea5989ccef54595f3d56497f28427aefe497974.png)

```auto
[{"id":"79c50acbb8a31ea1","type":"inject","z":"8685480636500a34","name":"Test Automation","props":[],"repeat":"","crontab":"00 12 * * *","once":false,"onceDelay":0.1,"topic":"","x":432,"y":846,"wires":[["9d05800c3e545546"]]},{"id":"9d05800c3e545546","type":"exec","z":"8685480636500a34","command":"npm -g info node-red version","addpay":"","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"Check Installed Version","x":668,"y":846,"wires":[["c1b0021ca796317f","6e2af9a3ffd03e6f"],[],[]]},{"id":"c1b0021ca796317f","type":"debug","z":"8685480636500a34","name":"Payload Output","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":908,"y":774,"wires":[]},{"id":"6e2af9a3ffd03e6f","type":"api-call-service","z":"8685480636500a34","name":"Log Version","server":"83ec8e72.cb41c","version":5,"debugenabled":false,"domain":"input_text","service":"set_value","areaId":[],"deviceId":[],"entityId":["input_text.nodered_installed_version"],"data":"{\"value\":\"{{ payload }}\"}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":934,"y":846,"wires":[[]]},{"id":"83ec8e72.cb41c","type":"server","name":"Home Assistant","version":5,"addon":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true}]

```

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [26 February 2023 10:32 UTC](https://discourse.nodered.org/t/call-service-error-extra-keys-not-allowed-help/75755/2 "2023-02-26T10:32:59Z")

</div>

Does it make a difference if you strip the carriage return off the end of the version string?

---

<div class="post-metadata">

**Author:** ![aperture1988](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/aperture1988/32/40681_2.png) [@aperture1988](https://discourse.nodered.org/u/aperture1988)\
**Post date:** [26 February 2023 10:35 UTC](https://discourse.nodered.org/t/call-service-error-extra-keys-not-allowed-help/75755/3 "2023-02-26T10:35:52Z")

</div>

Thank you for reply, I was wondering about that but I wasn't sure how I could do that? Any ideas?

This is the command I am running:

```auto
npm -g info node-red version

```

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [26 February 2023 10:41 UTC](https://discourse.nodered.org/t/call-service-error-extra-keys-not-allowed-help/75755/4 "2023-02-26T10:41:11Z")

</div>

The low code way would be to add `-json` to your command and then add a json node directly after the exec node.  
Or use a function node and add

```auto
msg.payload = msg.payload.trim()
return msg;

```

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [26 February 2023 10:42 UTC](https://discourse.nodered.org/t/call-service-error-extra-keys-not-allowed-help/75755/5 "2023-02-26T10:42:05Z")

</div>

You could use `npm -g info node-red version | tr -d '\n'`

Or a change node in NR

```auto
[
    {
        "id": "0afc0aec5e666a4a",
        "type": "change",
        "z": "5541fa9c09b4fce3",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "$substringBefore($$.payload, \"\\n\")",
                "tot": "jsonata"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 609.2000122070312,
        "y": 332.20001220703125,
        "wires": [
            [
                "c1b0021ca796317f"
            ]
        ]
    }
]

```

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [26 February 2023 10:44 UTC](https://discourse.nodered.org/t/call-service-error-extra-keys-not-allowed-help/75755/6 "2023-02-26T10:44:30Z")

</div>

JSONata has a $trim() function that will remove whitespace before and after

---

<div class="post-metadata">

**Author:** ![aperture1988](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/aperture1988/32/40681_2.png) [@aperture1988](https://discourse.nodered.org/u/aperture1988)\
**Post date:** [26 February 2023 10:44 UTC](https://discourse.nodered.org/t/call-service-error-extra-keys-not-allowed-help/75755/7 "2023-02-26T10:44:55Z")

</div>

This worked perfectly, thank you!

```auto
npm -g info node-red version | tr -d '\n'

```

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [26 February 2023 10:45 UTC](https://discourse.nodered.org/t/call-service-error-extra-keys-not-allowed-help/75755/8 "2023-02-26T10:45:29Z")

</div>

Thanks. I'm not waving but drowning in JSONata

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [26 February 2023 10:53 UTC](https://discourse.nodered.org/t/call-service-error-extra-keys-not-allowed-help/75755/9 "2023-02-26T10:53:42Z")

</div>

Generally drowning people can not wave.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [12 March 2023 10:53 UTC](https://discourse.nodered.org/t/call-service-error-extra-keys-not-allowed-help/75755/10 "2023-03-12T10:53:57Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
