currently I have a subprocess that uses pp!initiator to get the user data to check few validation, and one sometimes the pp!initiator seems to not pick the user from the parent process and i think instead it picks the masteruser (i.e. ABC) which was used to publish the process model.
It happens on random instances. Am i missing something.
Discussion posts and replies are publicly visible
In the parent process, you need to check what configuraiton is being used in the "Assignment" tab. Initiator will inherit down when "whoever started the process" is selected, and likewise if "whoever designed" is selected, the initiator from there down in the process instance hierarchy will be the model's publishing user instead (which is recommended for any process instances that might be open for a while, since deactivation of the initiator user will mess things up).
Apart from that, I second Shubham's suggestion - due to the finnicky and uncontrollable nature of "pp!initiator", you should explicitly store and pass the initiator user as a PV instead of relying on the process property. The secondary benefit here is, occasionally there will be times (in actual usage) where this needs to be manually edited to a different user, and using this suggestion makes it far easier.