Sri Lankan Fish Buns

Sri Lankan fish buns, or maalu paan, are a beloved bakery snack filled with spicy fish and potato filling wrapped in soft, fluffy bread. These savory buns are perfect for breakfast, tea time, school lunchboxes, or anytime you’re craving a taste of classic Sri Lankan food. Learn how to make Sri Lankan fish buns at home with this easy step-by-step recipe.

a plate of sri lankan fish buns or maalu pans on a dark background.

Sri Lankan Fish Buns

Sri Lankan fish buns, known locally as Malu Paan or Malu Banis, are soft yeast buns filled with a spiced mixture of canned fish (usually mackerel or tuna), mashed potatoes, onions, and aromatics like curry leaves and green chilies. They’re shaped into triangles, brushed with egg wash, and baked until golden.

These buns belong to what we call “short eats” in Sri Lanka – baked or fried snacks perfect for breakfast, tea time, or any time hunger strikes. When you have guests over these can be served along with some Butter Cake and Masala Tea. You’ll find them at every corner bakery, but making them at home means you can pack in extra fish and spice them exactly how you like.

I started making fish buns when I moved away from Sri Lanka and couldn’t find a decent bakery version anywhere. After years of tweaking, I’ve landed on this recipe that gives me soft, delicious buns every single time. There’s something magical about biting into a warm fish bun straight from the oven. Trust me, they’re completely addictive.

Why This Recipe is Different

Most fish bun recipes you’ll find use all-purpose flour and water for the dough. That works fine, but you end up with buns that are just… okay. A bit dense, a bit dry, nothing like what you’d get from a really good bakery like Fab or Perera & Sons (two of the popular bakeries in Sri Lanka).

This recipe is different because I use bread flour specifically for its high gluten content. That extra gluten creates structure and gives you a dough that rises beautifully and stays soft. But here’s the real magic: I combine it with milk instead of water.

Milk adds fat, which tenderizes the dough and gives it a brioche-like quality. The result? Buns that are soft, with that melt-in-your-mouth texture.

I’ve tested this recipe countless times over the years, tweaking ratios and techniques until I found the version that gives me perfect results every single time. No more dense buns, no more dry dough, no more inconsistent texture. This is the recipe to try because it just works.

Ingredients and Notes

*Scroll down for the recipe card with a full ingredient list and measurements.

These fish buns are a labor of love, but once you taste them, you’ll understand why they’re worth the effort.

ingredinets for fish filling for fish buns.
Ingredients for fish filling
  • Fish: I use canned mackerel because it’s traditional and has great flavor, but canned tuna in brine works well too. Make sure to drain it really well – you don’t want extra liquid making your filling watery. I like to take the bones out too for a smoother filling.
  • Potatoes: They bind the filling, and add structure to the filling. Mash them roughly with a fork – you want some texture, not a smooth paste.
  • Raw curry powder: This is unroasted Sri Lankan curry powder, which has a fresher, more aromatic flavor than roasted. If you can’t find it, use regular Sri Lankan curry powder or even a good Madras curry powder.
Ingredients for the dough on a tray.
Ingredients for the dough
  • Bread flour: This is the secret to bakery-quality buns. Bread flour has a higher protein content (around 12-14%) compared to all-purpose flour (10-12%), which means more gluten development. That gives you buns with better structure, a softer crumb, and that tender, almost fluffy texture. If you use all-purpose flour, your buns will still be good, but they won’t have that same melt-in-your-mouth quality. The difference is really noticeable.
  • Milk: Using milk instead of water is the other half of the secret. The fat in milk tenderizes the gluten strands and adds richness, giving the dough an almost brioche-like texture. It’s what makes these buns stay soft even the next day, instead of drying out like water-based doughs tend to do. Whole milk works best, but 2% is fine too. If you’re using water, dissolve 3 tbs milk powder in it.
  • Butter: Adds flavor and keeps the buns moist. You can substitute with oil if needed, but butter gives you better flavor.
  • Instant yeast vs Active dry yeast: This recipe uses instant yeast, which can be mixed directly into the flour without activating it first. If you’re using active dry yeast instead, you’ll need to activate it first – dissolve it in the warm milk with the sugar and let it sit for about 15 minutes until it’s frothy and bubbly. Then proceed with the recipe as written.

How to Make Sri Lankan Fish Buns

*Scroll down for the printable recipe card for a full list of ingredients and instructions.

Make the Filling:

Start by boiling and peeling the potatoes. Mash them roughly and set aside. Next, clean the canned fish fillets by removing any large bones and the slimy skin.

Now you’re ready to make the filling.

cooking the filling by sauteing the onions and adding fish to the pan.

Heat a pan and sauté the chopped onions, ginger, garlic, and curry leaves until soft and fragrant. Add the spices and chopped green chillies, and sauté for about a minute to cook them out. Add the canned mackerel and mash it into the onion mixture. Mix well so the fish is evenly coated with the spices.

fish filling cooking the in the pot.

Stir in the mashed potatoes and mix until everything comes together. Turn off the heat, add a squeeze of lemon juice, and taste. Adjust the seasoning if needed. Set aside to cool.

Make the Bun Dough:

bowl with dough ingredients.

Start by warming the milk in the microwave – you want it lukewarm, not hot. If you’re using a stand mixer (like I do), use the bowl attachment. If not, a large bowl works just fine.
Add the warm milk, instant yeast, sugar, egg, and melted butter to the bowl. Sprinkle over the bread flour and salt. Knead on low for about 10 minutes, until the dough comes together into a soft ball.

Dough in a bowl on the counter.

Save This Recipe!

We'll email this post to you, so you can come back to it later!

Kneading by hand? Mix everything in the bowl first, then tip the dough out onto a lightly floured counter and knead until smooth and elastic. Cover the bowl with a damp cloth and let the dough rest until doubled in size, about 1 hour. Once risen, gently press it down to deflate.

dough spread out on the counter and divided into balls.

Place the dough on the counter and flatten it into a round. Divide it into 12 equal portions, about 65–66 g each, so the buns bake evenly. Shape each portion into a ball.

how to fold the dough for fish buns.

Take one ball and flatten it into a round, thinning the edges slightly. Place some fish filling in the center and shape it into a triangle.
Bring the two side edges of the dough over the filling so they overlap. Fold the bottom edge up over the top and pinch the seams to seal.

filled dough before baking and after baking.

Place the filled bun seam-side down on a parchment-lined baking sheet. Repeat with the remaining dough balls. Cover and let the buns rise for another hour. They won’t puff up much during this second rise.

While the dough is rising, preheat the oven to 420°F. Brush the buns with egg wash and sprinkle with sesame seeds, if you like. Bake for 12–13 minutes, or until golden and puffed. Remove from the oven and let cool slightly before digging in!

fish buns on a plate.

Tips For Perfect Fish Buns

  • Seal the buns properly. When you’re folding the dough into triangles, pinch the edges really well. If there are any gaps, the filling will ooze out during baking. Press firmly and make sure all the seams are closed.
  • Let the dough rise twice. The first rise develops flavor, and the second rise after shaping gives you those fluffy, bakery-style buns. Don’t rush either rise – be patient and your buns will thank you.
  • Use bread flour and milk for the best texture. This isn’t just a preference – it’s what separates good fish buns from incredible ones. The high gluten in bread flour gives you structure and softness, while milk adds richness and keeps the buns tender for days. If you’re serious about getting bakery-quality results at home, don’t substitute these ingredients.
fish bun halves on top a stack of fish buns.

Storage

Keep leftover fish buns in an airtight container in the fridge for up to 5 days. When you want one, just warm it in the microwave for about 30 seconds.

Freezing? Wrap each bun in plastic wrap, toss in a freezer bag, good for 3 months. Reheat frozen buns in a 350°F oven for 10 minutes, or microwave for 60-90 seconds.

holding a fish bun.

What if I don’t have bread flour?

Use all-purpose flour instead. The buns will be slightly softer and less chewy, but they’ll still be delicious. Just know you won’t get that same melt-in-your-mouth, bakery-quality texture.

Why are my buns dense?

This usually means the yeast wasn’t active, the dough didn’t rise enough, or you didn’t knead long enough. Make sure your yeast is fresh. To help the dough rise keep it somewhere slightly warm. If using active dry yeast, make sure it became frothy during activation – if it didn’t, the yeast may be dead and you’ll need to start over with fresh yeast.

What’s the difference between instant yeast and active dry yeast?

Instant yeast can be mixed directly into the flour without proofing. Active dry yeast needs to be dissolved in warm liquid with sugar for 15 minutes until frothy before using. Both work for this recipe, but the timing differs.

Storage

Store leftover fish buns in an airtight container at room temperature for up to 2 days, or refrigerate for up to 5 days. Reheat in a 350°F oven for 5-7 minutes to refresh them.

Before You Begin! If you make this, please leave a review and rating letting us know how you liked this recipe! This helps us to thrive and continue providing free recipes.

Recipe

Sri Lankan Fish Buns (Bakery Style)

sri lankan fish buns on a plate.
Ultra-soft fish buns with spiced mackerel and potato filling. The secret? Bread flour + milk creates bakery-quality, brioche-like texture that melts in your mouth.
No ratings yet
Prep Time 20 minutes
Cook Time 25 minutes
Resting Time 2 hours
Total Time 2 hours 45 minutes
Servings 12 buns

Equipment

  • 2 large baking tray

Ingredients
 

Fish Filling

  • 1 tbsp oil
  • ½ onion chopped
  • 2 tsp ginger garlic paste
  • 1 stalk curry leaves chopped
  • 2 green chillies chopped
  • ½ tsp chili powder
  • ½ tsp turmeric powder
  • ½ tsp black pepper
  • ½ tsp raw curry powder
  • 1 tsp salt or as needed
  • 2 tsp lemon juice
  • 1 can mackerel (443g) or 2 cans of tuna
  • 3 medium potatoes about 450-500 g

Dough

  • 1 cup milk
  • 1 tsp instant yeast
  • 1 tbsp sugar
  • 1 egg
  • ¼ cup butter melted
  • 450 g bread flour
  • 1 tsp salt

Finishing

  • 1 egg beaten with splash of water (egg wash)
  • sesame seeds (optional)

Instructions
 

Make the filling:

  • Start by boiling the potatoes. Wash them and add to a pan with enough water to cover. Season the water with 2 teaspoons of salt and bring to a boil over high heat. Cover and cook for 15–20 minutes, until the potatoes are tender and easily pierced with a knife or fork. Drain, let cool slightly, then peel.
    Mash the potatoes roughly and set aside.
  • Next, open the canned fish and drain off the liquid. Take out the fish fillets and remove any large bones and the slimy skin.
  • Saute chopped onions, ginger, garlic, curry leaves until soft and aromatic. Next, sprinkle the spices, chopped green chillies and saute for a minute to cook them. Mash the canned mackarel fillets in. Mix them well with spices and onions.
  • Stir in the mashed potatoes over low heat until combined. Turn off the heat, add lemon juice to taste, adjust seasoning, and set aside to cool.

Make the dough:

  • Warm the milk in the microwave until lukewarm, not hot.
  • If using a stand mixer, fit it with the bowl attachment. Add the warm milk, yeast, sugar, egg, and melted butter. Sprinkle in the flour and salt. Knead on low speed for about 10 minutes, until the dough comes together.
    If kneading by hand, mix everything in a large bowl. Tip the dough out onto a lightly floured counter and knead until soft and elastic.
  • Place the dough in a bowl, cover with a damp cloth, and let rise until doubled in size, about 1 hour. Gently press down to deflate.

Shape the buns:

  • Place the dough on the counter and flatten into a round. Divide into 12 equal portions (about 65–66 g each). Shape each portion into a ball.
  • Flatten one ball into a round, thinning the edges slightly. Place some filling in the center and shape it into a triangle. Bring the two side edges over the filling so they overlap. Fold the bottom edge up and pinch to seal. Place seam-side down on a parchment-lined baking sheet. Repeat with the remaining dough.
  • Cover and let rise for another hour. The buns won’t rise much during this second proof.

Bake the fish buns:

  • While the buns are rising, preheat the oven to 420°F (215°C).
  • Brush the buns with egg wash and sprinkle with sesame seeds, if using.
    Bake for 12–13 minutes, or until golden and puffed. Remove from the oven and let cool slightly before serving.

Notes

  • Use bread flour for a soft, bakery-style bun. All purpose flour works too but won’t be that soft and brioche-like.
  • Milk tenderizes the dough. If using water, mix 3 tbsp milk powder in.
  • Instant yeast doesn’t need activating. For active yeast, add it into warm milk and sugar and let it activate for 10 minutes.
  • Store it in the fridge. Warm in the microwave before eating.

Save This Recipe!

We’ll email this post to you, so you can come back to it later!

Nutrition

Serving: 1 bun | Calories: 256 kcal | Total Carbs: 40 g | Protein: 8 g | Fat: 7 g | Saturated Fat: 3 g | Sodium: 468 mg | Fiber: 3 g | Sugar: 3 g | Vitamin A: 225 IU | Vitamin C: 15 mg | Calcium: 46 mg | Iron: 1 mg | Net Carbs: 37 g
DID YOU MAKE THIS?I want to know! Leave a comment & recipe rating below or tag @loveandotherspices on social media!
Course Breakfast, Snack
Cuisine Sri Lankan

SHARE THIS POST:

Leave a Reply

Your email address will not be published. Required fields are marked *

Recipe Rating