Maalu Paan
Sri Lankan Fish Buns
Maalu paan, Sri Lankan fish buns, are soft, lightly sweet yeast buns with a spiced tinned fish filling, baked until golden. The dough carries milk, butter and egg; the centre is jack mackerel or tuna fried down with onion, garlic, ginger, green chilli, curry leaves and Sri Lankan curry powder. You'll find them in every neighbourhood bakery, and they're the short-eat to tear open with milk tea.

Soft, pillowy bakery buns with a spiced fish centre. They disappear the moment the plate hits the table.
- Total time
- 50 min
- 30 min prep · 20 min cook
- Serves
- 8 people
- Difficulty
- Medium
- Spice level
- Medium
- Country help
- USA · UK · AU · CA substitutes included
CeylonCooking
ceyloncooking.com/recipes/fish-buns

Sri Lankan Fish Buns (Maalu Paan)
Scan to open on your phone
Nutrition
Estimated values, per serving.
About This Dish
Walk past any Sri Lankan bakery late afternoon and you'll see trays of glossy golden buns in the glass case. The fish ones get a little nick or a teardrop shape so you don't mix them up with the sweet ones. Maalu paan means 'fish bread' and it's one of the great short-eats: cheap, hand-held savouries that Sri Lankans eat at the counter, on the bus, or with a mid-morning cup of tea. For decades, almost nobody made them at home because the corner bakery did them so well and so cheaply.
What's in the middle is thrifty and full of flavour. Tinned jack mackerel is the workhorse fish of the Sri Lankan pantry. Drain it, flake it, and cook it down with onion, ginger, garlic and green chilli until you get a thick, spiced mixture, almost like a cutlet filling. Some bakers tuck a wedge of boiled egg in there too. Wrap that filling in a soft, faintly sweet milk-and-butter dough, seal it, proof it until puffy, brush with egg, and bake it to a deep shine. The contrast is everything: a soft, slightly sweet bun against a savoury, chilli-warm fish centre.
Making these at home is a small pleasure, and easier than it looks. The dough forgives you, the filling is a quick fry-up you can make ahead, and the only thing to get right is sealing the buns so they don't burst. Pull a tray out warm, tear one open so the steam escapes, and you'll understand why generations of Sri Lankans love maalu paan. It tastes like a bakery on a rainy afternoon.
What Is Maalu Paan?
Maalu paan means 'fish bread' and it's one of the best-loved items in Sri Lankan bakery culture. Bakeries turn out a whole family of soft, enriched buns, paan, filled with sweet jam, seeni sambol, spiced fish, and more. These stuffed buns are at the centre of the short-eats tradition: small, savoury, hand-held snacks eaten with tea, not as a full meal. The bun itself is a tender, lightly sweet yeast dough enriched with milk, a little butter and egg. It's baked, not fried, so it stays pillowy and soft under a thin, glossy crust.
The traditional fish for these buns is tinned jack mackerel, the same inexpensive, full-flavoured fish that goes into cutlets, fish patties and plenty of everyday curries. Drain and flake it, then cook it down with onion, garlic, ginger, green chilli, curry leaves and spices into a thick, savoury filling. Tinned tuna works just as well, and plenty of home cooks use it. Either way, the fish stretches a little protein a long way and carries a lot of spice, all wrapped in soft bread.
What It Should Taste Like
A soft bun that is faintly sweet, with a thin glossy crust, giving way to a thick savoury fish centre warm with curry powder, fragrant with curry leaf and gently chilli-hot. Eat it just warm, when it is at its most moreish.
Ingredients
This recipe makes 8 servings. Change the number and every amount below updates with it. Substitutes for hard-to-find items are in the sidebar.
The US button converts grams, millilitres and centimetres to ounces, cups and inches. Spoon measures stay exactly as they are.
Open this in the recipe converter
Dough
- Plain (all-purpose) flourabout 375 g, plus a little extra for dusting3 cups
- Instant yeast2 tsp
- Sugar3 tbsp
- Salt1 tsp
- Warm milklukewarm, or warm water¾ cup
- Egglightly beaten, plus 1 more for the egg wash1
- Buttersoftened3 tbsp
Fish Filling
- Tinned jack mackerel or tunadrained and flaked1 tin (about 400 g)
- Onionfinely chopped1
- Garlicminced2 cloves
- Gingerminced1 tsp
- Green chilliesfinely chopped2
- Curry leaveschopped1 sprig
- Sri Lankan curry powder1 tsp
- Chilli powderto taste½ tsp
- Tomatochopped, or 1 tbsp tomato paste1 small
- Lime juice1 tsp
- Oil1 tbsp
- Saltto taste
- Boiled eggoptional, cut into wedges to tuck inside2
Method
Follow these 6 steps. Each one explains not just what to do, but why it matters.
Ready to Start Cooking?
The screen shows one step at a time, with just the ingredients that step needs at your serving count, a timer you can tap, and your phone kept awake.
- 01
Make and Knead the Dough
Stir the yeast and sugar into the warm milk and leave it for 5 minutes until foamy. Mix in the flour, salt, beaten egg and softened butter, then knead for 8 to 10 minutes until smooth and elastic.
The foaming is your proof that the yeast is alive, so don't skip it. If nothing happens after 5 minutes, the yeast is dead or the milk was too hot and killed it. The milk should feel pleasantly warm on your wrist, never hot. As you knead, the dough goes from a shaggy, sticky mess to something smooth, springy and a little tacky that pulls back when you poke it. That stretchiness is gluten developing, and it's what gives the finished bun its soft, pull-apart crumb. A stand mixer with a dough hook does the same job in about 5 minutes.

Tip: Don't be tempted to add lots of extra flour. A slightly sticky, soft dough bakes into a far fluffier bun than a dry, stiff one.
- 02
First Proof
Shape the dough into a ball, put it in an oiled bowl, cover, and leave it somewhere warm for about 1 hour, until doubled in size.
This is where the dough builds its lightness. The yeast feeds on the sugar and gives off carbon dioxide, which inflates the dough and develops a faint, pleasant tang. A warm, draught-free spot speeds it up. A cold kitchen just means it takes longer, so judge by size, not the clock. It's ready when it has roughly doubled and a finger gently pressed in leaves a dent that springs back slowly rather than bouncing straight out.

Tip: No warm spot? Heat the oven to its lowest setting for a minute, switch it off, and let the dough rise inside with the door shut.
- 03
Cook the Fish Filling
While the dough rises, fry the onion, garlic, ginger, green chilli and curry leaves in the oil until soft. Stir in the curry powder, chilli powder and tomato, then add the flaked fish, salt and lime juice and cook until thick and dry.
You're aiming for a filling that holds together and is properly dry, not loose or wet. Any spare moisture will steam inside the bun and make the dough gummy, or tear the seal open in the oven. Let the onions soften and turn golden first so they sweeten. Then toast the spices for a few seconds until fragrant before the fish goes in. Keep cooking and stirring until the mixture clumps together and pulls cleanly away from the base of the pan. Taste it: it should be savoury, a little spicy and bright with lime. Cool it completely before filling.

Tip: Make the filling a day ahead and chill it. Cold, firm filling is far easier to wrap and seal than warm, soft filling.
- 04
Fill and Shape the Buns
Knock back the risen dough and divide it into 8 pieces. Flatten each piece into a disc, spoon the filling (and a wedge of boiled egg, if using) into the centre, then gather the edges up over the filling and pinch firmly to seal into a smooth ball.
Sealing is the step that decides if your buns come out whole. Pull the dough edges up and over the filling like a tiny purse, pinch them hard, then roll the bun seam-side down between your cupped hands so the join disappears. Any gap or thin patch is exactly where the bun splits and leaks in the oven. Keep the filling back from the very edge of the disc so you have a clean rim of dough to pinch. A teardrop shape is traditional for fish buns, which is handy for telling them apart from sweet ones.

Tip: Don't overfill. A modest spoonful that seals cleanly beats a generous one that bursts in the oven every time.
- 05
Second Proof and Egg Wash
Arrange the buns seam-side down on a lined tray, leave a bit of space between them, cover loosely, and proof for 30 to 40 minutes until they puff up. Beat the remaining egg and brush it over the tops.
This second, shorter rise is what gives you a light, airy bun instead of a dense roll. The shaped buns relax and puff up again, so they bake tall and soft rather than tight. They are ready when they look visibly swollen and feel pillowy, and a gentle press leaves a slow-filling dent. Then the egg wash goes on just before baking, and it sets into that deep, glossy, golden-brown sheen that makes maalu paan look exactly like the shop ones.

Tip: Brush the egg wash gently and keep it off the seam and the tray. Pooled egg glues the bun down and stops it rising evenly.
- 06
Bake Until Golden
Bake in a preheated oven at 190C/375F for 18 to 20 minutes, until they turn deep golden brown and sound hollow when you tap underneath.
Don't watch the timer too closely. Watch the colour and listen for the hollow tap instead, since every oven runs a little differently. The tops should be a rich, even bronze, and the bases firm and lightly golden, not pale and doughy. A properly baked bun sounds hollow when you tap the underside, which means the crumb has set. Cool them on a rack for a few minutes so the steam settles and the crust stays soft instead of going leathery.

Tip: Want that bakery soft, glossy finish? Brush the hot buns with a little melted butter the moment they come out of the oven.
Common Mistakes to Avoid
- Using milk that is too hot kills the yeast, so the dough never rises.
- A wet, loose filling steams inside the bun and makes the dough gummy, or splits it open.
- Sealing the buns poorly. They burst and leak filling all over the tray as they bake.
- Skipping the second proof leaves the buns dense and heavy instead of soft and airy.
Serving Ideas
- Warm, with a cup of Sri Lankan milk tea as a classic short-eat.
- Pack them as a snack or lunchbox filler and eat them at room temperature.
- Split and spread with a little butter, or add a spoon of lunu miris for extra heat.
Building a whole plate around it? Start from our sri lankan party menu menu, which sets out what to cook alongside it and in what order.
Storage and Make-Ahead
Best on the day they're baked, while soft and fresh. They keep for 2 to 3 days in an airtight container at room temperature. Before eating, warm them briefly in a low oven to soften. Baked buns freeze well for up to 1 month. Cool them completely, freeze in a bag, then reheat from frozen in a 160C/320F oven for about 10 minutes. You can also freeze the shaped, unbaked buns and bake them from chilled once they have proofed.
Two Ways to Cook It
Try this first version: make the dough in a stand mixer, use tinned tuna for an easy, even filling, and skip the boiled egg. Shape simple round buns, give them a good egg wash, and bake. It is a forgiving, satisfying first yeast bake.
Knead the enriched dough by hand. Cook the filling with tinned jack mackerel, fresh curry leaves and Sri Lankan curry powder until it's thick and dry. Tuck in a wedge of boiled egg, shape them into the traditional teardrop buns, and give them a deep, glossy egg wash. Just like the bakery.
Lighter and Healthier Version
Fish buns are a treat, I'll give you that. But a few tweaks make them a little lighter without losing the soft bun and savoury fish that make them maalu paan. They're baked, not fried, so they already sit lighter than many short-eats.
Baked, Not Fried
Maalu paan are baked in the oven, not deep-fried, so they carry far less oil than fish cutlets or patties. Same spiced fish flavour, less grease.
Lighter Filling
Cook the fish filling in a non-stick pan with just a teaspoon of oil. Then lean on onion, ginger and lime for flavour instead of extra fat.
Add Vegetables
Bulk up the filling with finely chopped leek, carrot or cooked potato. Each bun ends up with more vegetables and a little less fish and bread per bite.
Wholemeal Swap
Swap up to a third of the plain flour for wholemeal flour to get extra fibre. The buns stay soft but bake a touch denser, so add a splash more milk.
Frequently Asked Questions
Maalu paan is a soft, lightly sweet Sri Lankan bakery bun filled with a spiced tinned fish mixture and baked until golden. The name means 'fish bread' in Sinhala. The enriched milk-and-butter dough wraps around fish, usually jack mackerel or tuna, cooked with onion, ginger, garlic, green chilli, curry leaves and Sri Lankan curry powder. It's one of the country's best-loved short-eats, eaten with tea.
Cooked It? Tell Us How It Went
Your notes on this sri lankan fish buns help the next person get it right: what you swapped, what you would do differently, where the recipe should have warned you. Tap a star if you are in a hurry, or write a few lines if you have a minute.
You Might Also Like
Sri Lankan Home Cooking Starter Pack
40 authentic Ceylon recipes made simple for foreign kitchens: spice guide, pantry checklist, substitute guide, 7-day meal plan and printable shopping lists.


