How to run and action in UXP plugin

I am trying to run an action in batch play.
I don’t know how to get an action by name but after some trial and error I got the correct action like this:

async function convertToLink(){
   const { app, core, action } = require("photoshop");
   act = app.actionTree[3].actions[10];
   console.log("running " +;

The log prints the right action but the play() does not run it.
What am I doing wrong?

if you do a quick search in the forum you will find some similar issues and solution by others
check this link, it may help you.

Thanks, it is more or less what I am doing.
I copied the solution in the post you pointed to, and it is still not working.
I debugged it till I got to this part:
if (setFound == true && actionFound == true) { await; }
Both conditions are true but it does not play the action.
Which is the same problem which occurred in my function.
What can prevent from playing the action?
I am using latest version of PS (23).

Does your action contain a script? Like JSX or something? If so, it won’t work. But I think it also should show an error. Do you get anything in console?

Yes, it contains a jsx script.
I am trying to get a list of all layercomps in a doc.
This API is still missing and I cant get it via batch play either.
In ExtendedScript it is very easy.

I just tried to change it and use s different action, one without jsx script.
It does not run either

@karpiyon Check my update on that thread, hope this can help you.

It’s working now and running the JSX script.
Nice workaround.
Perhaps you could also solve this one…