Hot and sour soup fails at home for one reason more than any other: people treat it like a soup. It is not a soup. It is a glossy, starch-thickened suspension of shredded things held in tension between vinegar and white pepper, and the whole dish lives or dies on the order in which you build it. Get the order right and you get that restaurant bowl, the one that wakes you up. Get it wrong and you get a flat, cloudy pot of vegetables that tastes like nothing in particular.
I cooked this badly for years. My early versions were thin, or grey, or the egg clumped into one sad raft. The fixes turned out to be small and entirely about technique, not about the ingredient list. So this is a recipe, but it is mostly an argument for a particular sequence of steps, and for understanding why each one exists.
At a glance. The non-negotiables: 1000 ml of liquid to 4 tablespoons of cornstarch gives the right coating body; the vinegar and white pepper go in off the heat at the very end, never into a rolling boil; and everything solid is cut to the same matchstick thickness so it cooks in two minutes. Miss any of those three and the bowl collapses.
What this soup actually is
The version most Americans know is a northern Chinese home soup called Suan La Tang (酸辣汤), literally "sour-hot soup." It belongs to a broad family of hot-and-sour dishes that runs across China, from the glass noodle version of Sichuan suan la fen to the Xi'an-style hot and sour noodles to a quick hot and sour stir-fried napa cabbage. They share a flavor logic, but the soup is the gentlest of them. The heat here does not come from chili or chili oil; it comes from toasted white pepper, which is sharp and aromatic rather than genuinely spicy. That is why this soup can hit the table for breakfast or for a sick day where the Sichuan versions cannot.
The traditional bowl is built from three proteins (pork, tofu, egg), three rehydrated dried goods (shiitake, wood ear, lily buds), and two fresh vegetables (carrot, bamboo shoots). Each one earns its place by contributing a different texture: crunch from carrot and bamboo, slip from tofu, snap from wood ear, chew from shiitake, silk from the egg. Strip any of them and the soup reads as incomplete. I will tell you where you can cut corners below, but understand that the variety is the point.
The three things that go wrong, and why
Before the recipe, the failure modes, because these are what separate a great bowl from a mediocre one.
One: the sourness cooks out. Black rice vinegar is volatile. Boil it for two minutes and most of its bright top notes leave with the steam, leaving a dull, slightly sweet acidity. This is why every traditional recipe adds the vinegar at the end, off the heat. I have tested both ways. Into boiling liquid, you need roughly double the vinegar to taste the same. Do not do that. Just add it last.
Two: the egg clumps instead of flowering. Pour beaten egg into still liquid and it sinks and turns into a dumpling. Pour it into a violent boil and it shreds into dust. The fix is the narrow band in between: the soup must be thickened first, and the heat low enough that the surface is just trembling when the egg goes in. Starch thickening raises the viscosity, which slows the egg's fall and lets it set into those thin, feathery ribbons you see in a good egg drop soup. This is also why you add the egg after the cornstarch, never before.
Three: it thickens to paste, or never thickens at all. Cornstarch slurry separates as it sits, so you must stir it back together right before pouring. And cornstarch loses half its thickening power if you boil it hard for more than a minute. Simmer, thicken, then back off the heat. If you reheat leftovers and they turn thin and watery, that is the cornstarch breaking down; stir in a teaspoon of fresh slurry and warm gently.
Ingredients
Ingredients at a glance

Quantities are for 6 first-course bowls (about 1000 ml total liquid). The protein and vegetable amounts are flexible; the liquid-to-starch ratio and the seasoning amounts are not. Cut every solid ingredient to roughly the same matchstick thickness, about 5 cm long and 3 mm wide. Uniformity matters more than precision.
| Ingredient | Amount | Notes / substitute |
|---|---|---|
| Dried shiitake mushrooms | 5 (about ½ cup sliced) | The flavor backbone. See my shiitake guide for sourcing. Fresh shiitake works but is milder; use about 100 g. |
| Dried wood ear mushroom | 5 g (about ½ cup sliced) | For the signature crunch. How to rehydrate wood ear. Hard to substitute; omit if unavailable. |
| Dried lily buds (golden needles) | 20 strands | Earthy, slightly floral. Found dried in Asian markets. Optional but traditional; skip if you cannot find them. |
| Lean pork (tenderloin or loin) | 80 g (about ½ cup sliced) | Slice across the grain. Chicken breast works; for vegetarian, omit and add extra tofu. For a richer pork soup base, see pork rib soup. |
| Cornstarch (for pork velveting) | ½ teaspoon | Plus 1 teaspoon water and ½ teaspoon neutral oil. This is velveting in miniature; it is what keeps the pork tender in a quick boil. |
| Carrot | 40 g (about ½ cup sliced) | Color and crunch. |
| Bamboo shoots | 50 g (about ½ cup sliced) | Canned, drained. Often sold pre-julienned. |
| Soft or medium-firm tofu | 100 g (about ½ cup sliced) | Not silken, which shreds when you cut it. For silken handling tips see silken tofu. |
| Egg | 1, lightly beaten | The feathery ribbons on top. |
| Unsalted chicken or vegetable stock (or water) | 1000 ml (about 4¼ cups) | Homemade chicken stock gives the deepest flavor. Water works because the dried mushrooms carry a lot of umami on their own; just season a little more aggressively at the end. |
| Cornstarch (to thicken) | 4 tablespoons | Mix with 4 tablespoons cold water right before using. Do not mix ahead. |
| Black rice vinegar (Chinkiang / Zhenjiang) | 3 tablespoons, or to taste | The sour. Use black rice vinegar, not white rice vinegar, and not balsamic despite the similar color. Balsamic is sweet and winey in the wrong direction. |
| Light soy sauce | 1 tablespoon | For salt and a little color. See light vs dark soy sauce. If the soup tastes flat (a common complaint), add salt by the quarter teaspoon rather than more soy sauce, which darkens it. |
| Ground white pepper | ½ teaspoon, or to taste | The heat. Buy whole white peppercorns and grind fresh if you can; pre-ground loses its bite fast. Toast briefly in a dry pan for more aroma. |
| Toasted sesame oil | ½ teaspoon | Finishing oil. A little goes far. |
| Cilantro or scallions, chopped | To garnish | Cilantro is more traditional in the north; scallions are fine. |
Step-by-step
The active cooking is ten minutes. The waiting is an hour or overnight, depending on how you rehydrate.
- Rehydrate the dried goods. Cover the shiitake, wood ear, and lily buds with plenty of warm water and let them soak until fully soft, at least 1 hour, or overnight in the fridge. Hot water cuts the time but pulls slightly less flavor. Why overnight is better: a slow, cool soak rehydrates the cell walls gently and the texture stays snappier, especially for the wood ear. Save the soaking water (strained) for the broth.

Soak the three dried ingredients until fully soft, at least 1 hour, then strain and save the clear mushroom liquid for the broth
- Velvet the pork. Slice the pork across the grain into thin matchsticks, then toss with the ½ teaspoon cornstarch, 1 teaspoon water, and ½ teaspoon oil. Let it sit while you finish prep. Why: the starch coating gelates in the hot broth and cushions the meat fibers, and the oil keeps the strands from sticking together. This is the same principle as the velveting used in moo shu pork, just faster.

Toss the pork first with ½ teaspoon cornstarch and 1 teaspoon water, then ½ teaspoon oil; the strands should stay separate, not pasty
- Cut everything else to match. Julienne the carrot, bamboo shoots, and tofu to the same thickness as the pork. Snip the lily buds in half if they are long. Slice the rehydrated shiitake and wood ear into thin strips. Lightly beat the egg in a small bowl with a fork; you want it combined, not frothy.
- Boil the broth and cook the pork. Bring the stock (plus the strained mushroom liquid, if using) to a full, rolling boil in a wok or wide pot. Drop in the pork and immediately stir with chopsticks to separate the strands. Skim the grey foam that rises. Why a full boil here: the pork needs the shock of high heat to set the velveting coating before it can cloud the broth. Once the foam is skimmed, the broth will look clean again.
- Add the firm ingredients and simmer two minutes. Put in the shiitake, wood ear, lily buds, carrot, and bamboo shoots. Lower to a steady simmer and cook about 2 minutes, until the carrot just loses its raw crunch. Do not add the tofu yet. The firm vegetables need those minutes; the tofu does not.
- Thicken. Stir the cornstarch slurry until completely combined (it will have separated), then pour it in a thin stream while stirring the soup in one direction. Keep the heat at a gentle simmer. Within 30 to 60 seconds the broth turns glossy and coats the back of a spoon. This is your last chance to adjust salt. Once thickened, flavors read differently, so taste now and add salt or soy if it is flat.

Re-stir the slurry, keep only a gentle simmer, and pour slowly while stirring until the broth lightly coats the back of the ladle
- Add the tofu and egg. Slide in the tofu and let it warm through for 20 seconds. Then, with the soup at a low murmur (not a boil), pour the beaten egg in a slow, thin stream while moving your hand in a circle over the surface. Stop pouring, wait three seconds, then give one gentle stir. The egg will set into thin ribbons. Why wait before stirring: if you stir immediately the ribbons break into specks; if you never stir they clump. Three seconds is the window.

Add the tofu first, pour the egg over a low murmur, wait 3 seconds, then stir once gently so ribbons form instead of specks
- Kill the heat and season. As soon as the surface starts bubbling again, turn the heat off entirely. Add the black rice vinegar, light soy sauce, white pepper, and sesame oil. Stir once, gently. Taste, and add more vinegar or pepper at the table if you like it louder. This single step is the whole dish. The aroma that rises when the vinegar hits the hot soup is what people remember. Boil it and it is gone.

Switch off the heat before adding vinegar, soy sauce, white pepper, and sesame oil; boiling this final seasoning drives away the aroma
- Garnish and serve immediately. Ladle into bowls, hit each one with cilantro or scallion, and bring it to the table while it is still steaming. This soup does not improve by sitting.
When it goes wrong: troubleshooting
The soup is cloudy and grey. You let the pork boil too long before skimming, or you stirred the cornstarch in before the foam was removed. Next time, skim fully before thickening. A spoonful of the mushroom soaking liquid also helps mask greyness with a darker, richer tone.
The egg turned into one solid lump. Either the soup was not yet thickened when you poured, or the heat was off and the egg sank. The slurry has to go in first. If it still clumps, try pouring through the tines of a fork held over the pot to break the stream further.
It tastes bland even with the right seasoning. Two likely causes. One: you used low-sodium stock and one tablespoon of soy sauce is not enough salt. Add salt directly, in small pinches. Two: you boiled the vinegar. The sourness should be bright and obvious; if it is a faint background note, add another tablespoon off the heat.
It is not spicy. This is the most common surprise for first-time cooks. White pepper is the only heat, and ½ teaspoon is a moderate level. Push it to a full teaspoon for a real bite, or serve with a Sichuan-style chili oil on the side for anyone who wants more fire. Adding dried chili to the broth changes the dish into something closer to a Xi'an-style hot-and-sour bowl, which is good but is no longer this soup.
The pork is tough and stringy. You either sliced with the grain instead of across it, or you skipped the velveting. Slice across the grain so the fibers are short, and never skip the cornstarch coating. Lean loin cooks in under a minute and will tighten badly if unprotected.
Leftovers are thin and watery. Cornstarch thins as it sits and breaks down further on reheating. Warm gently over low heat and whisk in a teaspoon of fresh cornstarch slurry to bring the body back. Do not re-boil hard.
Variations and what to serve with it
Hot and sour soup is a flexible template once you understand the structure: a starchy, glossy broth, a mix of textures, and the vinegar-and-white-pepper finish. Within that frame you can move things around.
Make it vegetarian or vegan. Omit the pork and use vegetable stock or the mushroom soaking liquid as the base. Double the tofu and add an extra handful of wood ear for body. The dried mushrooms already supply most of the umami, so the bowl barely suffers. A few cubes of pan-fried tofu on top after serving adds creaminess.
Add shrimp or ham. A handful of small peeled shrimp goes in with the pork. Thin strips of leftover char siu or cooked ham can replace some or all of the pork. I would not use raw chicken thigh here; it clouds the broth too much for the short cook time. If you want a chicken version, use breast, sliced thin and velveted like the pork.
Turn it into a one-bowl meal. Drop in cooked vermicelli or thin wheat noodles at the end, or serve over rice. A more traditional route is to ladle the soup over cooked dumplings, which is essentially the suan la treatment common at a Chinese breakfast applied to dumplings. For a lighter, brothier take on tofu-and-egg soup without the starch, try tofu soup with vegetables or a quick tomato egg drop soup.
Pairings. This soup is strong-flavored, so it balances mild dishes well. It is excellent before a stir-fry or as the warming course in a weeknight spread. I like it with plain steamed rice and a vegetable, or alongside steamed buns. In a Chinese-American takeout context it sits in the same slot as the classics, and it is one of the few takeout soups that is actually better at home.
Storage and reheating
If you are not serving right away, hold the soup at the thickened stage, before the vinegar and pepper go in. Refrigerate for up to two days. To serve, bring back to a bare simmer, stir in a little fresh cornstarch slurry if it has thinned, then kill the heat and add the seasonings fresh. This is the single best make-ahead tip for the dish, and it is why I sometimes prep the soup base in the morning and finish it in two minutes at dinner. For more dishes built around this kind of two-stage logic, see the make-ahead recipe collection.
Fully finished soup (with vinegar already added) will keep a day in the fridge but loses brightness. Reheat gently and accept that it will be a little duller than fresh; a splash of extra vinegar at the table rescues most of it. The egg ribbons soften on reheating but do not disappear. I do not recommend freezing; the tofu and egg textures suffer badly.
Frequently asked questions
A few questions that come up reliably every time I cook this for people who have not made it before.
Can I use water instead of stock? Yes. The rehydrated mushrooms contribute enough umami to carry plain water. If you go this route, taste carefully at the end and add salt gradually; water has none of the built-in seasoning that stock does.
Where does the heat come from if there is no chili? Entirely from toasted white pepper. It reads as a sharp, aromatic warmth rather than chili heat. Start at ½ teaspoon and add more at the table if you want it stronger.
Do I really have to rehydrate for an hour? At least. Hot water gets you there in about 30 minutes but the texture is slightly mushier. Overnight in the fridge is best if you can plan ahead.
Can I make it ahead for guests? Build it through the thickening step and stop. Reheat gently, add a touch of fresh slurry if thin, then finish with the vinegar, soy, pepper, and oil right before serving. The bright flavor comes back fully.
Is there a substitute for Chinkiang vinegar? Not a perfect one. Any Chinese black rice vinegar will do. Avoid balsamic, which is too sweet; white rice vinegar works in a pinch but is thinner and less aromatic, so use slightly less and expect a flatter result.
Why is my soup not thick enough? Either the slurry separated before pouring (stir it again right before), or you boiled it too long after adding it, which breaks the starch down. Simmer, not boil, and stop as soon as it coats the spoon.



