I'm pretty sure the error was caused by the expression 'items(@{triggerOutputs()?’ID‘]})'.
I tried 'items(@{triggerOutputs()?['body/ID']})', still not working.
I thought I might as well just share the entire list, so I took off the items, and jump to the 'roleassignment' right after the list name, which looks like below.
Now the flow runs successfully, I can see the user in under the 'Manager permission', but the user is still unable to view other items, and still unable to edit this item...
I'm really, really lost.