Fish buns are a very popular “short eat” in Sri Lanka. Any eatery, bakery or even a small road side boutique shop carries these soft buns. Usually accompanied by a cup of plain black tea, this much loved stuffed bread roll was introduced to us, the Ceylonese (Island was called Ceylon back then), by the Portuguese settlers. I don’t think the younger generation is even aware of this fact! For us this has been there for all eternity and who would bother to question about the origin, when something is this delicious ?!! ๐
A rather interesting thing happened the other day, as soon as I posted these buns on the Instagram. Several of my fellow baking enthusiast/foodies from around the world came up with their version of this same bread roll. I had a blast Googling all those and learnt more about each every variety and the cultures behind them. If you are interested, following are a few of the variations that came up;
Tuna fish buns – Hong Kong
Piroshki – Russia and Ukraine
Fatayer – Lebanon
Esfirra – Brazil
May be there are more varieties out there, let me know in the comments.

Even though these are tastier with actual white fish, we always used canned mackerel for this, because it is very convenient and also there’s no need to worry about fish bones (tiny pin bones could be annoying to remove).
This is a yeasted dough, meaning we use yeast to leaven the dough, but I created this recipe to use sourdough starter (natural levain). It adds more flavor to the dough and I find it very liberating not having to depend on store bought yeast. Also I like the fact that I can span out the process across two days, which gives me more time to relax and do other things in between. Unlike yeasted dough, I don’t have to worry about over-proofing the buns as these are sourdough ( a delay of 15 minutes is not as disastrous).

If you are worried about sour flavor in the dough, well you wouldn’t notice it as the savory filling is going to overpower the bread. And if you maintain your starter, and used a fed healthy leavain, then the sourness will be minimal ( just right! in my books) And also you can bake these on the same day without retarding overnight.
Let’s start by making the fish filling! You can, of course, use any filling of your choice.

Steam the potatoes, remove the skin and roughly smash.
I use the microwave to cook the potatoes. Place them on a plate, dock each potato with a fork and cook on high for 6-8 minutes or until potatoes go soft. Leave to cool and remove skin.

Finely chop the onions, garlic, Thai chili peppers, herbs. Heat 3-4 tbsp oil in a saucepan and add the chopped up aromatics in the pan. Cook string until onions become translucent and fragrant. Add the spices and continue to cook on medium heat for another minute.

Add the mashed potatoes and canned fish (mackerel/or cooked white fish). Continue to cook string for a further 3-4 minutes. Make sure to break the big pieces of fish and potato. Add salt and pepper give a good mix and taste. Adjust salt and spices if necessary. If the mixer seems too dry add a splash of water or canned water from the mackerel. Once the mixture comes together, take off the heat.

This is how the filling should look like. Spread it on a tray to cool faster and set aside.
This can be made ahead and refrigerated until needed. Let it come to room temperature before you use it(otherwise cold filling will slow the proofing of the bun once inside)

You should have a starter ( your levain) ready. This can be anywhere from 80 – 100 % hydrated. The ratio to feed depends on how fast you want the levain to be ready/ripe. Read more about starter here. About feeding instructions here
Check the recipe notes for the instructions on how to use commercial yeast( instant fast acting yeast) instead of sourdough

To make the dough, place everything except milk in a bowl of a stand mixer and start mixing using the dough hook. Add milk gradually until everything is fully hydrated, like shown in the picture.
If your egg is larger or starter(leavain) is runny, you might not need the whole 1 cup of milk. It’s okay to leave about 1-2 tablespoon of milk behind.

Increase the speed to medium ( 2 or 3) and start mixing. Scrap down the sides and use flour to aid mixing. If too sticky, let the mixture sit for 10-15 minutes and then mix again. Use a little dusting of flour to help release the dough from the sides of the bowl. When it looks like the picture, it is ready to come out.

Take the dough out on to a floured surface. We will finish kneading by hand. Use a light dusting of flour to stop the dough sticking to your hand/bench. Knead the dough (stretch and fold) until it becomes smooth and elastic ( for about 4 minutes) This dough is soft and easy to work with and a pleasure to handle. You will enjoy kneading this dough.
If it is still too sticky, let it rest for about 15 minutes or use some flour.

You will end up with a smooth dough like this. Do not try to do ‘window pan test’ as it is not necessary and we are not looking for that level of gluten development.
Be careful not to over knead the dough. If the dough becomes too tough or elastic, the resulting bun will be on the chewy side.

Place the dough in a lightly greased bowl ( glass or plastic) and lightly cover with a lid or damp tea towel and leave in a warm place to bulk.
Will take about 3-4 hours in a warmer place (27 – 29 ยฐC) Always look for the visual clues rather than the time.

We are looking for a dough that has almost doubled in volume. It doesn’t have to be double exactly. Considerable expansion with air bubbles inside and looking puffed up is enough signs.
Now punch this dough (again a very satisfying thing to do) down and round up to a tight ball and place in a air tight container and refrigerate for about 18 – 22 hours. Less is fine too.
For a same day bake, avoid retarding but refrigerate for 2-3 hours for ease of handling.

Shaping the buns:
If the cold dough is too tough, let it sit at room temperature until soft enough to mold. Divide the dough in to 14 ( 65 g – 68 g) pieces or 12 (80 g) pieces.

Pre shape the dough pieces into tight smooth balls, just like when you are making bread rolls/dinner rolls. Use a little flour to stop dough from sticking.
Once done, set aside and cover with a tea towel ( to prevent drying) and let these rest for about 20-30 minutes
Following video shows how to shape the fish buns.

Place the shaped buns on a tray lined with parchment. Leave space around the buns as they proof a bit and puff up in the oven. I used two trays ( 7 buns on each)
Now lightly cover the tray and leave in a warm place to proof.
Took about 2.5 hours in a warm (27 – 29 ยฐC) place.

When these are almost ready, preheat the oven. Place a rack in the center.
I bake one try at a time. If your oven is a convection that heats evenly, you can try to bake both trays at once, but rotate towards the end.
These take only 15 minutes to bake so 1 tray at a time is really not that bad.

Once the oven is ready, lightly egg wash the buns and bake for 15 minutes ( if not golden brown, give another 2-3 minutes)

Once they turn Golden brown on top, remove from the oven and leave on a wire rack to cool.

Ingredients
For the filling
- Half a big onion
- 2 cloves of garlic
- 2 Thai chili peppers ( optional)
- A handful of fresh/dried curry leaves ( or few sprints of Thyme/rosemary)
- 1 tbsp curry powder (use less if you want mild flavor)
- 1/2 tsp turmeric powder
- 1/2 tsp chili powder( optional)
- Half a can ( about 1 cup) mackerel or cooked white fish (de-boned)
- 2 medium potatoes steamed/boiled
- salt and pepper to taste
- 3-4 tbsp oil
For the dough
- 450 g all purpose flour
- 1 tsp salt
- 100 g active fed starter ( levain)
- 3 tbsp sugar
- 2 tbsp soft butter ( not melted)
- 1 egg
- 1 cup milk
- 1 egg beaten to egg wash
Instructions
To make the filling
- Peel and roughly smash the potatoes
- Finely chop the onions, garlic, chilies, curry leaves (herbs)
- Heat 3-4 tbsp oil in a saucepan, and add chopped up aromatics from step 2
- Stir and cook on medium heat until onions turn translucent and fragrant
- Add the spices followed by the potato and the fish
- Stir well to mix everything and continue to cook on medium heat
- Make sure to break any remaining big fish or potato pieces
- If mixture is too dry ( or catching the pan) add a bit of oil/water or the water from the fish can
- Add salt and pepper, stir and taste. Adjust spices or salt if necessary
- Take off the heat and spread on a tray to cool fast
- This can be made a day or two ahead and refrigerated until needed ( make sure to thaw before using)
To make the dough
- Place everything except milk in a bowl of a stand mixer and start mixing on low speed using the dough hook attachment
- Add milk gradually until everything is hydrated ( it is okay to leave behind 1-2 tbsp of milk if it’s too sticky)
- Increase speed to medium-low (2 on kitchenaid) and continue to knead/mix for about 3-4 minutes, scraping down the sides of the bowl
- Use a little flour to help release the dough from the sides of the bowl
- When the dough is stretchy,strong and start to release from sides bring out onto a floured surface
- Continue to knead by hand ( use stretch and fold) until a smooth, soft dough is formed
- Once the dough is developed, place in a lightly greased bowl ( glass or plastic), cover lightly and place in a warm place to bulk ( until almost doubled in size)
- Should take about 3-4 hours or longer if temperature is low
- Once bulked, punch down the dough, mold into a ball again place in a air tight container and refrigerate for retardation ( slow fermentation)
- If baking on the same day refrigerate only for 2-3 hours and continue with the next step
- Take the retarded dough out and let it sit for about 15 – 30 minutes or until soft enough to handle ( should still be cold)
- Divide the dough in to roughly equal pieces ( 14 pieces 65 g each or 12 pieces 80 g each)
- Mold them into tight dough balls (just like when making dinner rolls) set aside and cover with a tea towel to prevent drying
- Leave theme to rest for bout 20 – 30 minutes
- Once rested, shape the buns as shown in the video above.
- Stretch each dough ball into a circle, place a bit of filling, apply a little water around the edges and fold to form a triangle
- Place seem side down on a tray lined with parchment
- Continue with the rest and once done, loosely cover the trays and place in a warm place to proof ( about 2.5 hours in a warm place or longer in a cooler place)
- Pre-heat the oven to 400 ยฐF (200 ยฐC) place a rack in the center
- Once proofed, egg wash lightly and bake for 15 minutes or until top is golden brown
Notes
If you don’t have sourdough starter;
Use 1 satchel packet of commercial instant yeast (7 g) instead of the 100 g starter. You can either bloom the yeast in a little warm water or use as is ( follow normal procedure /packet instructions) .
Use extra 40 g of milk or water.
Mix the dough in the same way and bulk for about 45 minutes (until dough is doubled) and continue to make the buns as directed. Proof the shaped buns for about 30 – 45 minutes or until puffed up ( do the poke test to make sure they are proofed)and bake using the same directions above.

7 comments
These look great. I’ve been struggling with how to get a good filling to sweet bun ratio. This technique looks perfect.
Thanks Karey. Let me know how it went.
Cheers!
Made this today. Left you some images on instagram this recipe is perfection. I can vouch for it.
I am so glad you loved them. They look delicious.
Thank you for letting me know
Anytime!
I’m from Russia and love pirozhki! You can do with many different types of filling: meat, vegetables, cheese, mushrooms, etc. AND sweet too.
Yes! they are quite similar and yummy. I have had one from Piroshky Piroshky Bakery in Seattle.