# Bad data inject \[warning\]

**URL:** https://discourse.nodered.org/t/bad-data-inject-warning/77737
**Category:** Dashboard
**Tags:** chart
**Created:** [20 April 2023 10:30 UTC](https://discourse.nodered.org/t/bad-data-inject-warning/77737 "2023-04-20T10:30:11Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![ALIEN](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/alien/32/62198_2.png) [@ALIEN](https://discourse.nodered.org/u/ALIEN)
#### Post date: [20 April 2023 10:30 UTC](https://discourse.nodered.org/t/bad-data-inject-warning/77737/1 "2023-04-20T10:30:11Z")

</div>

Hello friends, I have a warning " bad data inject " while I am importing data from DB and show it on bar chart. The point is all the process is done perfectly and also data represented correctly on bar chart but I don't understamd the source of this warning!

This is my imported data from DB:

```auto
[{"Date":"2023-04-12T22:00:00.000Z","Avg_var2":"73.0","Avg_var3":"61.0","Avg_var6":"11.0"},{"Date":"2023-04-13T22:00:00.000Z","Avg_var2":"73.0","Avg_var3":"61.0","Avg_var6":"11.0"},{"Date":"2023-04-16T22:00:00.000Z","Avg_var2":"73.0","Avg_var3":"61.0","Avg_var6":"11.0"},{"Date":"2023-04-17T22:00:00.000Z","Avg_var2":"73.0","Avg_var3":"61.0","Avg_var6":"11.0"},{"Date":"2023-04-18T22:00:00.000Z","Avg_var2":"73.0","Avg_var3":"61.0","Avg_var6":"11.0"},{"Date":"2023-04-19T22:00:00.000Z","Avg_var2":"73.0","Avg_var3":"61.0","Avg_var6":"11.0"}]

```

and I respect the chart format such this:

```auto
var bar = [{
  "series": [],
  "data": [],
  "labels": []
}];

let columns = 0;

for (var series in msg.payload[0]) {
  if (series !== "Date") {
    bar[0].series.push(series);
    bar[0].data.push([]);
    columns++;
  }
}

for (var j = 0; j < msg.payload.length; j++) {
  for (var i = 0; i < columns; i++) {
    bar[0].data[i].push( msg.payload[j][bar[0].series[i]]);
  }

  bar[0].labels.push(msg.payload[j].Date.toLocaleString('en-us', { weekday: 'short' }));
}

msg.payload = bar;

return msg;

```

and this is the final data injecting to chart:

```auto
[{"series":["Avg_var2","Avg_var3","Avg_var6"],
  "data":[["73.0","73.0","73.0","73.0","73.0","73.0"],
              ["61.0","61.0","61.0","61.0","61.0","61.0"],
              ["11.0","11.0","11.0","11.0","11.0","11.0"]],
 "labels":["Thu","Fri","Mon","Tue","Wed","Thu"]}]

```

As I mentioned this is the result :

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/1/6/164beecc3f5e6018f8e3534961d81bbc1570bf1b.png)

and this is the warning I get

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/d/6/d6fe898f097414730c4405f3106601f38a2dc074.png)

I would appreciate it if give me an idea to fix the problem.

---

<div class="post-metadata">

### Author: ![nygma2004](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/nygma2004/32/1308_2.png) [@nygma2004](https://discourse.nodered.org/u/nygma2004)
#### Post date: [20 April 2023 11:04 UTC](https://discourse.nodered.org/t/bad-data-inject-warning/77737/2 "2023-04-20T11:04:16Z")

</div>

Interesting. I have not used the dashboard chart for some time now, but I have some examples, and the output looks same as yours:

```auto
var m={
    "series":["X","Y","Z"],
    "data":[[5,6,9],[3,8,5],[6,7,2]],
    "labels":["Jan","Feb","Mar"]
};
return {payload:[m]};

```

Can you check if the above works for you?

---

<div class="post-metadata">

### Author: ![hotNipi](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/hotnipi/32/383_2.png) [@hotNipi](https://discourse.nodered.org/u/hotNipi)
#### Post date: [20 April 2023 11:40 UTC](https://discourse.nodered.org/t/bad-data-inject-warning/77737/3 "2023-04-20T11:40:52Z")

</div>

The chart rejects incoming payload if those rules are not followed:

```auto
if (value[0].hasOwnProperty("series") && value[0].hasOwnProperty("data"))

```

where `value[0]` is (first) object in the array in `msg.payload`

You did show us case with positive outcome which is created from known and valid input. But is it always the case? The code doesn't validate the input thus there's not much of guarantee ...

---

<div class="post-metadata">

### Author: ![ALIEN](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/alien/32/62198_2.png) [@ALIEN](https://discourse.nodered.org/u/ALIEN)
#### Post date: [20 April 2023 11:43 UTC](https://discourse.nodered.org/t/bad-data-inject-warning/77737/4 "2023-04-20T11:43:03Z")

</div>

Hi @nygma2004 , Thanks for your reply. I test your structure and I didn't see the warning but when I  
put `[]` such this

```auto
var bar = [ {
                  "series": [],
                  "data" : [],
                  "labels": []
} ];

```

The warning come up!

---

<div class="post-metadata">

### Author: ![hotNipi](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/hotnipi/32/383_2.png) [@hotNipi](https://discourse.nodered.org/u/hotNipi)
#### Post date: [20 April 2023 11:58 UTC](https://discourse.nodered.org/t/bad-data-inject-warning/77737/5 "2023-04-20T11:58:47Z")

</div>

Just to be clear you do all correctly

This will produce error:

```auto
var bar = [{
    "series": [],
    "data": [],
    "labels": []
}];
msg.payload = [bar]
return msg;

```

Correct will be:

```auto
var bar = [{
    "series": [],
    "data": [],
    "labels": []
}];
msg.payload = bar
return msg;

```

---

<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: [20 April 2023 13:08 UTC](https://discourse.nodered.org/t/bad-data-inject-warning/77737/6 "2023-04-20T13:08:38Z")

</div>

Your data is correct and works for me with no errors, so i would think you are getting some miscellaneous payload messages being sent to chart. Would need to see your flow to be sure.

---

<div class="post-metadata">

### Author: ![ALIEN](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/alien/32/62198_2.png) [@ALIEN](https://discourse.nodered.org/u/ALIEN)
#### Post date: [21 April 2023 07:48 UTC](https://discourse.nodered.org/t/bad-data-inject-warning/77737/7 "2023-04-21T07:48:52Z")

</div>

Hi, Thanks for your hint. Actually, yes you are right and the problem is coming from another input in parallel with function foarmet the data for chart. In this node I am trying to clean the chart when payload is empty :

```auto
var bar = {
    "series": [],
    "data": [],
    "labels": []
};

if (msg.payload == null) {
    bar.data = [];
}

return { payload: [bar] };

```

I am a bit confused :thinking 😵‍💫

---

<div class="post-metadata">

### Author: ![hotNipi](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/hotnipi/32/383_2.png) [@hotNipi](https://discourse.nodered.org/u/hotNipi)
#### Post date: [21 April 2023 07:52 UTC](https://discourse.nodered.org/t/bad-data-inject-warning/77737/8 "2023-04-21T07:52:28Z")

</div>

To clear chart, send an empty array.

`msg.payload = []`

---

<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: [21 April 2023 08:03 UTC](https://discourse.nodered.org/t/bad-data-inject-warning/77737/9 "2023-04-21T08:03:12Z")

</div>

Send an empty array, e.g. `msg.payload = [];`

[edit] I see HotNipi already pointed the correct way to reset a chart.

---

<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: [21 May 2023 08:03 UTC](https://discourse.nodered.org/t/bad-data-inject-warning/77737/10 "2023-05-21T08:03:45Z")

</div>

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