Ukrainian Fish Soup (Ukha) with Potatoes and Dill

Updated November 4, 2026

Total time
1 hr 15 min
prep 25 min · cook 50 min
Serves
6
portions as written
Safe temperature (USDA)
145°F / 63°C
check the thickest piece

Jump to recipe

Ukrainian Fish Soup (Ukha) with Potatoes and Dill

Ukrainian fish soup, often called ukha, is a clear, gently seasoned soup of fish, potatoes, vegetables, and fresh herbs. This stovetop version uses fish stock for a savory base and finishes with dill and lemon; recipes vary by region and household, including which fish and vegetables go into the pot.

Ingredients

  • 8 cups (1.9 L) low-sodium fish stock
  • 1 medium yellow onion (about 150 g), peeled and left whole or halved
  • 2 medium carrots (about 180 g total), peeled and cut into thick rounds
  • 1 small parsley root (about 60 g), peeled and halved, optional
  • 2 bay leaves
  • 8 whole black peppercorns
  • 1 lb 2 oz (500 g) waxy potatoes, such as Yukon Gold, peeled and cut into 1-inch (2.5 cm) cubes
  • 2 lb (900 g) boneless, skinless fish fillets, cut into 1½-inch (4 cm) pieces; choose carp, pike, perch, cod, or haddock
  • 1 tsp fine salt (about 5 g), plus more to taste
  • ¼ tsp freshly ground black pepper (about 0.5 g)
  • ⅓ cup (12 g) finely chopped fresh dill
  • 2 tbsp (8 g) chopped fresh flat-leaf parsley
  • 1 tbsp (15 ml) fresh lemon juice, plus lemon wedges for serving

Instructions

  1. Prepare the ingredients. Cut the potatoes and carrots into similarly sized pieces so they soften at about the same pace. Check the fish carefully for pin bones, removing any with clean tweezers, then cut it into generous chunks. Pat the fish dry and keep it refrigerated while the broth and vegetables cook. If using frozen fish, thaw it safely in the refrigerator before starting and drain away any excess liquid.
  2. Start the broth. Pour the fish stock into a large, heavy pot, about 5 to 6 quarts (4.7 to 5.7 L). Add the onion, carrots, optional parsley root, bay leaves, and peppercorns. Bring the liquid just to a boil over medium-high heat, which usually takes about 8 minutes. Lower the heat to maintain a gentle simmer, not a rolling boil, and cook for 15 minutes. A restrained simmer helps keep the broth clear and prevents the vegetables from breaking apart.
  3. Add the potatoes. Stir in the potatoes and 1 teaspoon of salt. Keep the pot at a gentle simmer for about 15 minutes, or until the potatoes are nearly tender when pierced with a small knife. The exact time depends on the size and variety of the potatoes. If they still feel firm in the center, give them another 2 or 3 minutes before adding the fish; the fish cooks quickly, so it is better to have the potatoes almost ready first.
  4. Cook the fish gently. Lower the fish pieces into the soup in a single layer as much as the pot allows. Bring the liquid back to a bare simmer and cook for 7 to 10 minutes, depending on the thickness of the pieces. Avoid vigorous stirring, which can break the fish into flakes; gently move the pieces once if they are crowded. Check the thickest piece with a food thermometer. USDA FSIS lists 145°F (63°C) as the safe minimum internal temperature for fish. At that temperature, the flesh should also look opaque and separate easily with a fork.
  5. Season and finish. Turn off the heat. Lift out the onion, bay leaves, and parsley root if you used it; discard the bay leaves. You can leave the carrot rounds in the soup, as they are usually served, and chop or discard the onion according to your preference. Stir in the dill, parsley, lemon juice, and ground black pepper. Taste the broth and add salt a little at a time. Let the soup stand for 2 minutes, then ladle it carefully so each bowl gets fish, potatoes, and carrots.

Tips

  • Choose fish that holds together. Carp, pike, and perch are familiar freshwater choices in many Ukrainian-style versions. Cod and haddock are practical substitutes and have a mild flavor; they may flake more readily, so cut them into larger pieces and handle them gently. A mix of two firm fish can add variety without changing the method.
  • Make a sensible stock substitution. If fish stock is unavailable, use 7 cups (1.66 L) water and 1 cup (240 ml) bottled clam juice. The result will taste a little more briny and less like a fish-bone broth, so taste before adding all the salt. Water alone also works, but the finished soup will be milder; season carefully rather than adding a lot of salt at once.
  • Keep the broth clear. Use a quiet simmer and avoid stirring after the fish goes in. If foam gathers on the surface early in cooking, skim it off with a spoon. Do not boil the soup hard to speed it up: that can cloud the broth and break delicate fish into small pieces.
  • Prepare the fish close to cooking time. Keep raw fish chilled until you are ready to add it, and use a clean board and knife. If you want to work ahead, chop the vegetables earlier, but keep the cut fish covered in the refrigerator and separate from ready-to-eat ingredients.

Serving Suggestions

Serve the soup hot in warmed bowls, making sure each serving includes a useful portion of fish and vegetables. Put extra chopped dill and parsley on the table, along with lemon wedges for anyone who likes a brighter, more citrusy broth. A small amount of freshly ground black pepper is a simple finishing touch; avoid adding too much lemon directly to the pot if diners have different preferences.

Rye bread, dark Ukrainian-style bread, or another sturdy loaf is useful for dipping and makes the meal more filling. For a lighter accompaniment, offer sliced cucumbers, tomatoes, or a crisp cabbage salad dressed simply with vinegar or lemon. The soup is substantial enough to serve as the main course, so a rich side dish is not necessary. If serving bread, keep it separate until mealtime so it does not soften in the broth.

Variations

Use a mix of freshwater fish. Some home versions combine several fish, and a mixture of firm fillets can give the broth a more layered flavor. If using a whole fish or fish pieces with bones, cook them in the stock first, then carefully strain the broth and pick out the cooked fish before returning the broth to the pot. Add the picked fish back near the end so it warms without being cooked a second time. Take care to remove every bone before serving.

Add a little more root vegetable. Parsley root is a traditional-tasting option that can be hard to find in some grocery stores. Parsnip is an easy substitute, though it is sweeter and gives the broth a different aroma. If neither is available, leave it out; the onion, carrot, dill, and fish still make a flavorful soup. Keep the additional root vegetable modest so it does not dominate the delicate broth.

Adjust the herbs and vegetables. Dill is the characteristic fresh finish here, but you can use more parsley or add a small amount of chopped celery leaves. Some cooks include celery, a little garlic, or a tomato, while others keep the soup particularly spare. Add extra vegetables with the potatoes if they need about the same cooking time, and expect tomato to make the broth less clear and slightly tangier.

Make it without potatoes. For a lighter, more broth-forward bowl, omit the potatoes and reduce their cooking step. Check the carrots for tenderness after about 20 minutes total simmering, then add the fish and cook it to the same safe temperature. The soup will be less filling, so serve it with bread or add a side dish. Regional and family versions vary, so these changes are options rather than rules.

Storage and Reheating

Refrigerate leftover soup within 2 hours of cooking. Transfer it to shallow, covered containers so it cools promptly, and keep it refrigerated at 40°F (4°C) or below. Cooked fish soup keeps for 3 to 4 days in the refrigerator. The fish can become softer as it sits, and the potatoes may absorb some broth, but the soup is still suitable to reheat within that window if it has been handled and chilled properly.

Reheat only the amount you plan to serve in a saucepan over medium-low heat, stirring gently and bringing the soup to 165°F (74°C). Check the temperature with a food thermometer and avoid a prolonged boil, which can make the fish fall apart. Add a splash of water or stock if the broth has thickened, then refresh the bowls with dill or lemon after reheating. You can freeze the soup in airtight containers for up to 2 months for best quality, though potatoes and fish may soften after thawing. Thaw it in the refrigerator and reheat to 165°F (74°C); do not leave it to thaw on the counter.

Frequently Asked Questions

What fish is best for Ukrainian fish soup?
Firm freshwater fish such as carp, pike, or perch are good choices when available. Cod and haddock are convenient mild-flavored alternatives. The important practical point is to use fresh or safely thawed fish, remove pin bones, and cut the pieces large enough to stay intact while simmering.

Is ukha the same as every Ukrainian fish soup?
Ukha is a familiar name for clear fish soup, but naming and recipes vary across regions and households. Fish selection, vegetables, and seasoning can all differ. This recipe is one approachable version, not a claim that there is a single required formula.

Can I use frozen fish?
Yes. Thaw it in the refrigerator, not at room temperature, then drain and pat it dry before cutting it into pieces. Add it only when the potatoes are nearly tender. Frozen fish can release extra liquid, so keeping the broth at a gentle simmer and seasoning at the end helps you control the final flavor.

Why did my fish break apart?
Fish is likely to break if it is cut too small, stirred frequently, or cooked at a rolling boil. Use chunks about 1½ inches (4 cm) wide, lower them into a gentle simmer, and move them as little as possible. More delicate fish may still flake, but it will taste good even if the pieces are less tidy.

Can I make the soup ahead?
Yes, but fish soup is at its best when the fish has just been cooked. For easier make-ahead cooking, simmer the stock with the vegetables and cook the potatoes until nearly tender, then chill that base promptly. Reheat it the next day and add the fish fresh, cooking it until it reaches 145°F (63°C). Refrigerate any finished leftovers within 2 hours and use them within 3 to 4 days.

Related

More recipes to cook

Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes

Spotted an error? Tell us and we will correct it (corrections policy).