These Sri Lankan Fish Buns are soft, fluffy, and filled with a warmly spiced mixture of potato and mackerel. I love making them for breakfast, afternoon tea, or whenever I want a savory baked snack that feels both comforting and satisfying.
Why You’ll Love This Recipe
I love this recipe because it brings together a pillowy homemade dough and a flavorful filling with just the right amount of spice. The potatoes make the filling hearty, while the mackerel adds a rich savory taste that makes these buns extra satisfying. I also like that these buns work well for breakfast, snacks, lunchboxes, or tea time. They look impressive, but I can make them with simple pantry ingredients and a very approachable method.
Ingredients
(Tip: You’ll find the full list of ingredients and measurements in the recipe card below.)
For the filling:
500 g potatoes
1 cup chopped onion
2 garlic cloves, chopped
3 large green chilies, chopped
2 sprigs curry leaves, chopped
1 can mackerel, drained
2 tsp chili flakes
2 tsp freshly ground black pepper
1/4 tsp turmeric powder
1 tbsp coconut oil
Salt to taste
For the dough:
450 g all-purpose flour
245 g lukewarm milk
1 egg
22 g sugar
20 g butter, softened
7 g instant dry yeast
9 g salt
For the egg wash:
1 egg yolk
1 tsp milk
Directions
I start by peeling and quartering the potatoes, then I boil them in salted water until they are tender. After draining them well, I let them cool slightly and mash them lightly, keeping a little texture so the filling does not turn pasty.
Next, I heat the coconut oil in a pan and add the curry leaves, garlic, and green chilies. I cook them briefly until fragrant, then add the chopped onion and cook until softened. After that, I stir in the chili flakes, turmeric, and a little salt.
I add the drained mackerel and gently break it up in the pan, mixing it well with the aromatics. Then I season the mixture with black pepper, fold in the mashed potatoes, and cook everything for another 2 to 3 minutes until well combined. I always taste and adjust the seasoning before setting the filling aside to cool completely.
For the dough, I combine the lukewarm milk and yeast in a mixing bowl. I add the sugar, softened butter, and egg, then mix everything together. After that, I add the flour and salt.
I knead the dough for 8 to 10 minutes until it becomes smooth, soft, and elastic. Then I place it in a lightly oiled bowl, cover it, and let it rise until doubled in size, which usually takes about 45 to 60 minutes.
Once the dough has risen, I punch it down and divide it into 12 equal portions. I shape each one into a ball, cover them, and let them rest for 15 minutes.
I flatten each dough ball into a circle about 5 to 6 inches wide, keeping the center slightly thicker than the edges. Then I place about 1/3 cup of filling in the center, fold the dough over to form a triangle, and pinch the edges well to seal. I turn each bun seam-side down and shape it neatly.
I arrange the buns on a baking tray with space between them, cover them, and let them rise again for 30 to 45 minutes until puffy. While they rise, I preheat the oven to 425°F (215°C). I mix the egg yolk with 1 teaspoon milk and brush it over the tops of the buns.
Finally, I bake the buns for 12 to 15 minutes until they are beautifully golden brown. I let them cool for at least 20 minutes before serving so the filling can settle and the texture stays perfect.
Servings and timing
I get 12 servings from this recipe, which makes it great for sharing or saving a few for later.
Prep time: 20 minutes
Cooking time: 20 minutes
Total time: 150 minutes
Calories: 310 kcal per bun
Servings: 12 buns
Variations
I sometimes swap the mackerel for canned tuna when I want a slightly milder flavor. For a more traditional aromatic note, I like adding a little extra curry leaf or a pinch of roasted curry powder to the filling. When I want more heat, I add extra green chilies or chili flakes. I can also make the filling a bit softer and richer by stirring in a small amount of mashed potato, or make it chunkier when I want more texture. For a vegetarian version, I skip the fish and use a spiced potato filling with peas or carrots.
Storage/Reheating
I store leftover buns in an airtight container in the refrigerator for up to 3 days. If I want to keep them longer, I freeze them in a sealed container or freezer bag for up to 2 months. To reheat, I usually warm them in the oven at 350°F (175°C) for about 8 to 10 minutes so the outside stays nice and soft with a slight crisp edge. When I need something quick, I use the microwave for a short burst, though I find the oven gives the best texture.
Related Recipes:
FAQs
Can I make the filling ahead of time?
Yes, I often make the filling a day in advance and keep it in the refrigerator. I make sure it is fully cooled before using it in the dough.
Can I use tuna instead of mackerel?
Yes, I can easily replace the mackerel with canned tuna. The flavor changes a little, but the buns still turn out delicious.
Why does the filling need to be cool before shaping?
I always let the filling cool completely because warm filling can soften the dough too much and make the buns harder to seal properly.
Can I freeze these buns after baking?
Yes, I can freeze them after baking and cooling. I reheat them straight from frozen in the oven until heated through.
How do I keep the buns soft?
I keep them soft by not overbaking them and by storing them in an airtight container once they have cooled. I also find that reheating them gently helps bring back their soft texture.
Conclusion
These Sri Lankan Fish Buns are a wonderful savory bake with soft dough and a flavorful spiced filling that I always find hard to resist. I love how versatile they are for breakfast, snacks, or sharing with family and friends. Once I make a batch, I always feel like they disappear quickly, and that is usually the best sign of a recipe worth keeping.
📖 Recipe:
Print
Sri Lankan Fish Buns
5 Stars 4 Stars 3 Stars 2 Stars 1 Star
No reviews
- Author: Isabella
- Total Time: 150 minutes
- Yield: 12 buns
- Diet: Halal
Description
Soft, fluffy Sri Lankan buns filled with a warmly spiced mixture of potato and mackerel, perfect for a savory snack or tea-time treat.
Ingredients
500 g potatoes
1 cup chopped onion
2 garlic cloves, chopped
3 large green chilies, chopped
2 sprigs curry leaves, chopped
1 can mackerel, drained
2 tsp chili flakes
2 tsp freshly ground black pepper
1/4 tsp turmeric powder
1 tbsp coconut oil
Salt to taste
450 g all-purpose flour
245 g lukewarm milk
1 egg
22 g sugar
20 g butter, softened
7 g instant dry yeast
9 g salt
1 egg yolk
1 tsp milk
Instructions
- Boil peeled and quartered potatoes in salted water until tender. Drain, cool slightly, and lightly mash.
- Heat coconut oil in a pan. Add curry leaves, garlic, and green chilies; cook until fragrant. Add onion and cook until softened.
- Stir in chili flakes, turmeric, and salt. Add drained mackerel and break it up. Season with black pepper.
- Fold in mashed potatoes and cook for 2–3 minutes. Adjust seasoning and let the filling cool completely.
- In a bowl, combine lukewarm milk and yeast. Add sugar, butter, and egg, then mix. Add flour and salt to form a dough.
- Knead for 8–10 minutes until smooth and elastic. Cover and let rise for 45–60 minutes until doubled.
- Punch down dough and divide into 12 portions. Shape into balls and rest for 15 minutes.
- Flatten each ball into a circle. Place filling in the center, fold into a triangle, seal edges, and shape neatly.
- Place buns on a tray, cover, and let rise for 30–45 minutes until puffy. Preheat oven to 425°F (215°C).
- Mix egg yolk with milk and brush over buns. Bake for 12–15 minutes until golden brown.
- Cool for at least 20 minutes before serving.
Notes
Substitute mackerel with canned tuna for a milder flavor.
Add roasted curry powder or extra curry leaves for deeper flavor.
Adjust chili quantity to control spice level.
Store in the refrigerator for up to 3 days or freeze for up to 2 months.
Reheat in the oven at 350°F (175°C) for best texture.
- Prep Time: 20 minutes
- Cook Time: 20 minutes
- Category: Snack
- Method: Baking
- Cuisine: Sri Lankan
Nutrition
- Serving Size: 1 bun
- Calories: 310 kcal
- Sugar: 4 g
- Sodium: 420 mg
- Fat: 10 g
- Saturated Fat: 4 g
- Unsaturated Fat: 5 g
- Trans Fat: 0 g
- Carbohydrates: 42 g
- Fiber: 3 g
- Protein: 12 g
- Cholesterol: 55 mg








