Skip to main content
Fried Fish, Delhi-Style (Kaanta Gali Machli) — Whole fish de-boned, stuffed with its own spiced masala, and slow-cooked sealed for six hours

Dum · Indian Cuisine

Fried Fish, Delhi-Style (Kaanta Gali Machli)

Whole fish de-boned, stuffed with its own spiced masala, and slow-cooked sealed for six hours

dumfishwhole fishslow-cookedNorth Indiangluten-freespecial occasion
Share

The name is a promise about transformation: kaanta gali means the thorns — the bones — are gone. This dish takes a whole fish through an elaborate process: first fried, then dunked in hot and cold water to loosen the skin, then skinned and filled with a masala of fried onion, ginger, garlic, red chilli, curd, and garam masala, then sealed in a patili and cooked on the most patient possible flame for six to seven hours. When the lid comes off, the bones have become soft enough to eat, and the fish has absorbed its surrounding sauce completely.

This is heritage Indian cooking at its most serious — a technique that requires a full day's commitment and produces a dish that cannot be hurried into existence. The logic of the long, sealed cook is the same as the logic of any dum preparation: time and sealed heat do what force cannot. The bones soften. The flavours merge. The fish becomes the sauce and the sauce becomes the fish.

There are few precise analogues for this in Western cooking. It is its own thing: a braised, stuffed whole fish that has surrendered its structure to the long heat and gained something else in its place — a melting, spiced richness that is deeply satisfying and unlike any quickly-cooked fish dish.

At a Glance

Yield

Serves 4–6

Prep

40 minutes

Cook

6–7 hours

Total

7–8 hours

Difficulty

Involved

Ingredients

Serves 4–6
  • 2¼ lbwhole firm-fleshed fish (such as rohu, pomfret, or sea bass), cleaned
  • 2⅛ cuphot water, for blanching
  • A bowl of ice water, for shocking
  • 2¼ lbonions (about 6½–7 onions), finely sliced
  • ½ cupgarlic
  • ⅓ cupfresh ginger
  • 1¾ tbspred chilli powder
  • 1⅔ tspgaram masala
  • 1⅔ tspfine salt
  • 4½ lbfull-fat curd (yogurt)
  • ¾ cupghee
  • ½ cupmustard oil

Method

  1. 1

    Fry the fish. Heat mustard oil (125 ml) in a large tawa or frying pan. When hot (500 ml) and beginning to smoke, add the whole cleaned fish and fry on both sides until golden and firm — about 3–4 minutes per side.

  2. 2

    Loosen the skin. Immediately lower the fried fish into the hot water for 1 minute, then transfer to the ice water for 5 minutes. This temperature shock makes the skin easy to peel.

  3. 3

    Remove the skin. Lift the fish from the cold water and gently peel away the skin. It should come off cleanly. Carefully slit the fish lengthwise along the belly to create a pocket for the stuffing.

  4. 4

    Make the masala. Heat the ghee (200 g) in a heavy pan. Fry the sliced onions (1 kg) over medium heat until deeply golden and sweet, about 20 minutes. Add grated or pounded ginger (30 g), garlic (50 g) juice, red chilli powder (10 g), garam masala (5 g), and salt (10 g). Stir for 2 minutes. Add the curd and cook over medium heat, stirring, until the fat separates from the mixture. Remove from heat.

  5. 5

    Stuff the fish. Fill the cavity of the fish generously with the masala, working it in gently. Lay half of the remaining masala in the base of a heavy patili (a deep pot). Place the stuffed fish on top and cover with the remaining masala.

  6. 6

    Seal and slow-cook. Seal the patili tightly — use foil pressed under the lid, or seal with dough if available. Cook on the lowest possible flame for 6–7 hours. Do not lift the lid.

  7. 7

    Serve hot with chapattis, spooning the thick, reduced masala over each portion.

Key Ingredient Benefits

Mustard oil for the initial fry is traditional and appropriate here. Its high smoke point and pungent character suit the initial high-heat frying step perfectly. The harsh compounds that make raw mustard oil sharp are transformed by the heat into rounded, nutty notes.

Curd (yogurt) used in the masala quantity here (2 kg for a restaurant-scale preparation) may be reduced proportionally for home cooking. The large quantity of yogurt is cooked down substantially, and its proteins form the base of the thick, deeply flavoured final sauce. The acid in the curd also acts on the fish flesh during the long cook, further softening the texture.

Why This Works

Frying the fish before the long braise serves several functions: it creates a firm exterior that holds the fish together through the subsequent cooking, and it develops Maillard flavours in the skin and outer flesh that could not be achieved through braising alone. The hot-cold water shock that follows leverages rapid temperature change to separate the skin from the flesh without manual effort.

Six to seven hours on the lowest heat is not carelessness — it is precision. The temperature inside the sealed pot during this time is high enough to fully cook and begin to gelatinise the flesh, while low enough to prevent scorching or boiling, which would toughen the fish. The bones, given enough time at this gentle sustained heat, soften to the point where they are no longer a hazard or an inconvenience.

The masala inside and outside the fish means the flesh absorbs flavour from two directions simultaneously. The stuffing infusing from the cavity, the surrounding sauce permeating from outside.

Substitutions & Variations

For home cooking: The traditional method calls for 6–7 hours on a wood or coal fire where temperature can be held very precisely low. In a home kitchen, place the sealed pot on a heat diffuser over the lowest gas flame, or use a slow cooker on the low setting for 8 hours.

Scaled-down version: For 2–3 people, halve all quantities and use a 500g fish. Reduce cooking time to 4–5 hours.

Fish choice: Firm-fleshed freshwater fish such as rohu or catla are traditional. Marine alternatives with structural integrity (sea bream, sea bass, or mullet) work well. Avoid delicate fish such as sole or plaice.

Serving Suggestions

Serve at the table directly from the pot, spooning the intensely flavoured masala generously over each portion. Chapattis for scooping are the natural pairing. The sauce is too rich and thick for plain rice to handle alone. A sharp, vinegary pickle and raw sliced onion alongside provide necessary contrast to the deep, slow flavours of the fish.

Storage & Reheating

Keeps refrigerated for 2 days. Reheat very gently on the stovetop over the lowest possible heat, covered, with a spoonful of water added. The dish continues to improve overnight and is arguably better the next day.

Cultural Notes

Kaanta gali machli (कांटा गली मछली, "fish with melted bones") is the Hyderabadi-Awadhi fish preparation in which a whole fish (typically a freshwater fish like rohu, catla, or mackerel) is cooked slowly enough in a tangy yogurt-and-tamarind gravy with onion, ginger-garlic, and Hyderabadi spices that the small bones soften and partly dissolve into the gravy, leaving only the larger central spine to be removed at the table. The dish belongs to the broader South Asian tradition of softening fish bones through slow gentle cooking, a technique that allows the diner to eat the smaller bones along with the flesh rather than picking them out one by one.

The bone-softening tradition has parallels across cuisines. Japanese nizakana (simmered fish), Korean braised mackerel, Filipino paksiw na isda, and the slow-cooked sardine preparations of the southern Mediterranean all share the principle of cooking the fish long enough with acid (vinegar, tamarind, citrus) that the calcium-rich small bones soften and become edible. The Hyderabadi-Awadhi kaanta gali tradition applies the same principle to freshwater fish, using the tamarind and yogurt acidity of the gravy as the bone-softening agent. The technique is especially valued for serving children and elderly diners who struggle with traditional bony fish preparations, and the dish has long been a regional home favorite for that practical reason.

The technique combines a long slow simmer with the acidic gravy. A whole cleaned fish (or thick cross-section pieces) is rubbed with salt and turmeric and rested briefly. Onions are sliced and sautéed in mustard oil until dark golden, then ginger-garlic paste, ground coriander, Kashmiri red chili, ground cumin, and turmeric are added with a small amount of water. Whisked yogurt and tamarind extract are added off the heat to prevent splitting, then the fish is gently placed in the gravy with additional water to cover. The pot is covered and cooked over very low heat for about ninety minutes (longer than a standard fish curry, with the long time being the key to softening the bones), with the pot moved occasionally to prevent sticking. The dish is finished with a scatter of fresh cilantro and served with steamed basmati rice; the diner removes only the largest central spine, with all the smaller pin bones now soft enough to eat.

Nutrition Facts

Calories: 722kcal (36%)|Total Carbohydrates: 34.8g (13%)|Protein: 47.5g (95%)|Total Fat: 44.5g (57%)|Saturated Fat: 21.3g (107%)|Cholesterol: 178mg (59%)|Sodium: 279mg (12%)|Dietary Fiber: 3.1g (11%)|Total Sugars: 22.8g

You Might Also Like

Ratings & Comments

Ratings & Comments

Ratings

0 ratings
5
0
4
0
3
0
2
0
1
0

Share your thoughts on this recipe.

Sign in to rate and comment

0 Comments