Wash and cut fish into pieces.
Season fish with salt, chili powder, turmeric powder, and vinegar. Set it aside for about 10 minutes.
Add vegetable oil to a pan on medium heat, followed by mustard seeds.
Once the mustard seeds start to crack, add onion, green chilies, garlic, ginger, curry leaves, and pandan leaves and fry for about 1 minute until onions soften. Stir from time to time to stop the onions sticking to the base of the pan.
Add curry powder, chili powder, salt, turmeric, fenugreek, cinnamon stick, cardamom pods, and cloves, and saute for another one or two minutes. Make sure not to brown the spices.
Add water and tamarind and then mix well all together.
Bring the curry to a boil and then simmer for 5-minutes, stirring regularly.
Lastly, add the fish, reduce heat and let the fish cook for about 5 minutes stirring carefully, otherwise fish might break into small pieces. Season with salt as needed.
Turn off the heat and allow the curry to rest for 15-30 minutes for the flavors to blend.
Serve with rice or bread.