# Unable to move layer into group using ElementPlacement.PLACEINSIDE

**URL:** <https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967>\
**Category:** UXP Plugin API\
**Created:** [July 18, 2022, 9:45am UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967 "2022-07-18T09:45:34Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![karpiyon](https://avatars.discourse-cdn.com/v4/letter/k/eada6e/32.png) [@karpiyon](https://forums.creativeclouddeveloper.com/u/karpiyon)\
**Post date:** [July 18, 2022, 9:45am UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/1 "2022-07-18T09:45:34Z")

</div>

I created a group layer, which is layer[0], (king=group) and I am trying to run this code:

```auto
const constants = require('photoshop').constants;
var newGroup = await refDoc.createLayerGroup({ name: "mockUp"});
await app.activeDocument.layers[layerIndexToMove].move(newGroup , constants.ElementPlacement.PLACEINSIDE);

```

Stepping into with the debugger i see an error in common.js:  
“TypeError: Cannot read properties of undefined (reading ‘id’)”.

What am I doing wrong?

---

<div class="post-metadata">

**Author:** ![Karmalakas](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/karmalakas/32/1048_2.png) [@Karmalakas](https://forums.creativeclouddeveloper.com/u/Karmalakas)\
**Post date:** [July 18, 2022, 10:04am UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/2 "2022-07-18T10:04:05Z")

</div>

Looks like error does not relate to any of those 3 lines of code. Also what is `refDoc`? Did you check what you get as a `newGroup`? What is `layerIndexToMove`? Could it be you are trying to move group into itself? After you create a group, indexes might change. Way too little info provided

---

<div class="post-metadata">

**Author:** ![karpiyon](https://avatars.discourse-cdn.com/v4/letter/k/eada6e/32.png) [@karpiyon](https://forums.creativeclouddeveloper.com/u/karpiyon)\
**Post date:** [July 18, 2022, 10:16am UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/3 "2022-07-18T10:16:08Z")

</div>

The error is shows when I step into:

```auto
await app.activeDocument.layers[layerIndexToMove].move(newGroup , constants.ElementPlacement.PLACEINSIDE);

```

`refDoc=app.activeDocument`  
newGroup.kind=group  
Yes, I know the layer index changes after adding a group and I am not moving a group into itself.

---

<div class="post-metadata">

**Author:** ![Karmalakas](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/karmalakas/32/1048_2.png) [@Karmalakas](https://forums.creativeclouddeveloper.com/u/Karmalakas)\
**Post date:** [July 18, 2022, 10:33am UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/4 "2022-07-18T10:33:26Z")

</div>

Well… Error fires while trying to read `id`, but there’s nothing like it in your code, so it’s probably somewhere deeper. Error should say file and line where it occurs. Debug all your variables. What do you get for `app.activeDocument.layers[layerIndexToMove]`?

---

<div class="post-metadata">

**Author:** ![karpiyon](https://avatars.discourse-cdn.com/v4/letter/k/eada6e/32.png) [@karpiyon](https://forums.creativeclouddeveloper.com/u/karpiyon)\
**Post date:** [July 18, 2022, 10:47am UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/5 "2022-07-18T10:47:10Z")

</div>

> [@Karmalakas](#):
>
> app.activeDocument.layers[layerIndexToMove]

O get a layer object:  
`Layer {_id: 89, _docId: 506}`

---

<div class="post-metadata">

**Author:** ![Karmalakas](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/karmalakas/32/1048_2.png) [@Karmalakas](https://forums.creativeclouddeveloper.com/u/Karmalakas)\
**Post date:** [July 18, 2022, 10:57am UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/6 "2022-07-18T10:57:58Z")

</div>

And it’s definitely not the same as `newGroup`? And you didn’t answer where exactly error originates and what’s the code there.

---

<div class="post-metadata">

**Author:** ![karpiyon](https://avatars.discourse-cdn.com/v4/letter/k/eada6e/32.png) [@karpiyon](https://forums.creativeclouddeveloper.com/u/karpiyon)\
**Post date:** [July 18, 2022, 11:25am UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/7 "2022-07-18T11:25:57Z")

</div>

It is not the group layer.  
As I wrote, teh errors occurred when I stepped into the **move** method of the **Document** , here:

 ![image](https://us1.discourse-cdn.com/flex015/uploads/xdplugins/original/2X/6/6bf4abb9f738eff9bcc3db72818af8bc6f52d39d.png)  
 ![image](https://us1.discourse-cdn.com/flex015/uploads/xdplugins/original/2X/b/b7dae0ad76565b5e60b0c2eb13c2b27698bd3a30.png)

---

<div class="post-metadata">

**Author:** ![Karmalakas](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/karmalakas/32/1048_2.png) [@Karmalakas](https://forums.creativeclouddeveloper.com/u/Karmalakas)\
**Post date:** [July 18, 2022, 11:30am UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/8 "2022-07-18T11:30:39Z")

</div>

Check error backtrace

---

<div class="post-metadata">

**Author:** ![karpiyon](https://avatars.discourse-cdn.com/v4/letter/k/eada6e/32.png) [@karpiyon](https://forums.creativeclouddeveloper.com/u/karpiyon)\
**Post date:** [July 18, 2022, 11:45am UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/9 "2022-07-18T11:45:19Z")

</div>

how do you “Check error backtrace” in the debugger?

---

<div class="post-metadata">

**Author:** ![Karmalakas](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/karmalakas/32/1048_2.png) [@Karmalakas](https://forums.creativeclouddeveloper.com/u/Karmalakas)\
**Post date:** [July 18, 2022, 12:27pm UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/10 "2022-07-18T12:27:06Z")

</div>

Next to error there should be an arrow on the left to expand error info

---

<div class="post-metadata">

**Author:** ![karpiyon](https://avatars.discourse-cdn.com/v4/letter/k/eada6e/32.png) [@karpiyon](https://forums.creativeclouddeveloper.com/u/karpiyon)\
**Post date:** [July 18, 2022, 12:45pm UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/11 "2022-07-18T12:45:46Z")

</div>

ha?  
I only see the error when I hoover over the “error”.

 ![image](https://us1.discourse-cdn.com/flex015/uploads/xdplugins/original/2X/e/e32eb45b3eefbe98c5ccbdb86436bc2860ec01c3.png)

---

<div class="post-metadata">

**Author:** ![Karmalakas](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/karmalakas/32/1048_2.png) [@Karmalakas](https://forums.creativeclouddeveloper.com/u/Karmalakas)\
**Post date:** [July 18, 2022, 1:21pm UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/12 "2022-07-18T13:21:18Z")

</div>

Check it before converting to string. You should get more info

---

<div class="post-metadata">

**Author:** ![karpiyon](https://avatars.discourse-cdn.com/v4/letter/k/eada6e/32.png) [@karpiyon](https://forums.creativeclouddeveloper.com/u/karpiyon)\
**Post date:** [July 18, 2022, 1:46pm UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/13 "2022-07-18T13:46:59Z")

</div>

I think there is something wrong with this command or I am missing something.  
The errors I get are these:

> TypeError: Cannot read properties of undefined (reading ‘id’)  
> at \_directRef (uxp://uxp-internal:1)  
> at Layer.moveInside (uxp://uxp-internal:1)  
> at Layer.move (uxp://uxp-internal:1)  
> at createMockup (VM16 app.js:294)  
> at async \_internalExecuteAsModalWrapper (VM10 common.js:59)  
> at async \_internalCallbackWrapper (VM10 common.js:40)

However, I tried a very simply scenario. Can you check if this is working for you?:

```auto
    const constants = require('photoshop').constants;
    newLayer = await app.activeDocument.createLayer({ name: "testLayer"});
    newGroup = await app.activeDocument.createLayerGroup({ name: "testGroup"});
    await newLayer.move(newGroup, constants.ElementPlacement.PLACEINSIDE);

```

---

<div class="post-metadata">

**Author:** ![Timothy\_Bennett](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/timothy_bennett/32/1251_2.png) [@Timothy\_Bennett](https://forums.creativeclouddeveloper.com/u/Timothy_Bennett)\
**Post date:** [July 18, 2022, 3:24pm UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/14 "2022-07-18T15:24:22Z")

</div>

> [@karpiyon](#):
>
> However, I tried a very simply scenario. Can you check if this is working for you?:

I had a try and got the same error, changing it to “placeBefore” worked fine though. As the docs are written it does look like a bug?  
Here’s my code and log

```auto
const { app, core, constants } = require("photoshop");

    await core.executeAsModal(async () => {
      newLayer = await app.activeDocument.createLayer({ name: "testLayer" });
      newGroup = await app.activeDocument.createLayerGroup({
        name: "testGroup",
      });

      console.log("newLayer", newLayer);
      console.log("newGroup", newGroup);

      await newLayer.move(newGroup, constants.ElementPlacement.PLACEINSIDE);
    });

```

 ![image](https://us1.discourse-cdn.com/flex015/uploads/xdplugins/original/2X/9/9260f4dfefce7279a117882d90533efd200bbe2e.png)

---

<div class="post-metadata">

**Author:** ![karpiyon](https://avatars.discourse-cdn.com/v4/letter/k/eada6e/32.png) [@karpiyon](https://forums.creativeclouddeveloper.com/u/karpiyon)\
**Post date:** [July 18, 2022, 3:43pm UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/15 "2022-07-18T15:43:36Z")

</div>

> [@Timothy\_Bennett](#):
>
> placeBefore

While PLACEBEFORE works, it placed the layer before but not inside…

---

<div class="post-metadata">

**Author:** ![Timothy\_Bennett](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/timothy_bennett/32/1251_2.png) [@Timothy\_Bennett](https://forums.creativeclouddeveloper.com/u/Timothy_Bennett)\
**Post date:** [July 18, 2022, 3:48pm UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/16 "2022-07-18T15:48:19Z")

</div>

Which is what it’s supposed to do…

---

<div class="post-metadata">

**Author:** ![Karmalakas](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/karmalakas/32/1048_2.png) [@Karmalakas](https://forums.creativeclouddeveloper.com/u/Karmalakas)\
**Post date:** [July 18, 2022, 4:53pm UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/17 "2022-07-18T16:53:06Z")

</div>

If you create group first and then layer, it works fine, but only if your active layer (when running script) was the very top one or you had no layers selected at all. But if active layer is other that the top-most, then you’re screwed

 ![image](https://us1.discourse-cdn.com/flex015/uploads/xdplugins/original/2X/d/d4e24ae4e7b8041f02740e0ebb9eb9d791a2b718.png)

---

<div class="post-metadata">

**Author:** ![Karmalakas](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/karmalakas/32/1048_2.png) [@Karmalakas](https://forums.creativeclouddeveloper.com/u/Karmalakas)\
**Post date:** [July 18, 2022, 5:14pm UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/18 "2022-07-18T17:14:56Z")

</div>

Just tried lots of different variations of selecting layer before move, selecting group before move, selecting none before move… Then in any case there’s this error. It seems like `newLayer` should be selected, but it still only works if script is ran when nothing or top-most selected.

I’d stick with `batchPlay` TBH

---

<div class="post-metadata">

**Author:** ![karpiyon](https://avatars.discourse-cdn.com/v4/letter/k/eada6e/32.png) [@karpiyon](https://forums.creativeclouddeveloper.com/u/karpiyon)\
**Post date:** [July 19, 2022, 6:27am UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/19 "2022-07-19T06:27:36Z")

</div>

I found [this](https://developer.adobe.com/photoshop/uxp/ps_reference/classes/grouplayer/#moveabove)…  
How come it is not shown [here](https://developer.adobe.com/photoshop/uxp/2022/ps_reference/classes/layer/) ???

---

<div class="post-metadata">

**Author:** ![Karmalakas](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/karmalakas/32/1048_2.png) [@Karmalakas](https://forums.creativeclouddeveloper.com/u/Karmalakas)\
**Post date:** [July 19, 2022, 7:31am UTC](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967/20 "2022-07-19T07:31:25Z")

</div>

First link is for older versions, but not sure now which ones, because it’s a mess 🙂 I think it’s for earlier than Ps v23.0 and manifest v5. Probably would still work with manifest v4. As I said, noting versions in the docs is something Adobe doesn’t really bother about ☹

[Next page](https://forums.creativeclouddeveloper.com/t/unable-to-move-layer-into-group-using-elementplacement-placeinside/4967.md?page=2)
