# Error While Updating Array using painless script

**URL:** https://discuss.elastic.co/t/error-while-updating-array-using-painless-script/81047
**Category:** Elasticsearch
**Created:** [April 3, 2017, 7:25pm UTC](https://discuss.elastic.co/t/error-while-updating-array-using-painless-script/81047 "2017-04-03T19:25:27Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Gautam\_Vanani](https://avatars.discourse-cdn.com/v4/letter/g/a9a28c/32.png) [@Gautam\_Vanani](https://discuss.elastic.co/u/Gautam_Vanani)
#### Post date: [April 3, 2017, 7:25pm UTC](https://discuss.elastic.co/t/error-while-updating-array-using-painless-script/81047/1 "2017-04-03T19:25:27Z")

</div>

Hi,  
I'm facing issue while updating array field

```
{ "error": {
"root_cause": [
  {
    "type": "remote_transport_exception",
    "reason": "[3BcGP3Y][127.0.0.1:9300][indices:data/write/update[s]]"
  }
],
"type": "illegal_argument_exception",
"reason": "failed to execute script",
"caused_by": {
  "type": "script_exception",
  "reason": "runtime error",
  "caused_by": {
    "type": "class_cast_exception",
    "reason": "Cannot apply [+] operation to types [java.util.ArrayList] and [java.util.ArrayList]."
  },
  "script_stack": [
    "ctx._source.stone_ids += params.ids",
    " ^---- HERE"
  ],
  "script": "ctx._source.stone_ids += params.ids",
  "lang": "painless"
}}, "status": 400 }

```

while trying following update operation,  
\> POST /search\_history/stone/2/\_update  
\> {  
\> "script" : {  
\> "inline": "ctx.\_source.stone\_\_ids += params.ids",  
\> "lang": "painless",  
\> "params" : {  
\> "ids" : [4,5]  
\> }  
\> },  
\> "upsert" : {  
\> "stone\_ids":[4,5]  
\> }  
\> }

can anyone help me in this?

---

<div class="post-metadata">

### Author: ![nik9000](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nik9000/32/44947_2.png) [@nik9000](https://discuss.elastic.co/u/nik9000)
#### Post date: [April 3, 2017, 8:28pm UTC](https://discuss.elastic.co/t/error-while-updating-array-using-painless-script/81047/2 "2017-04-03T20:28:28Z")

</div>

`ctx._source.stone_ids.add(params.ids)` should do it.

---

<div class="post-metadata">

### Author: ![Gautam\_Vanani](https://avatars.discourse-cdn.com/v4/letter/g/a9a28c/32.png) [@Gautam\_Vanani](https://discuss.elastic.co/u/Gautam_Vanani)
#### Post date: [April 5, 2017, 2:08am UTC](https://discuss.elastic.co/t/error-while-updating-array-using-painless-script/81047/3 "2017-04-05T02:08:26Z")

</div>

@nik9000 thank you for reply  
I tried with addAll() method it is working properly but with duplicate values.  
Is there any settings available to notify that consider this particular field as Set not List to avoid duplication??

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [May 3, 2017, 2:08am UTC](https://discuss.elastic.co/t/error-while-updating-array-using-painless-script/81047/4 "2017-05-03T02:08:31Z")

</div>

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