Beans taste bitter because of natural compounds in their seeds and skins, primarily saponins and tannins, that haven’t been adequately removed during preparation. The good news: most of the bitterness is water-soluble, which means your cooking method can eliminate it almost entirely. The cause could also be something as simple as old beans, the wrong variety, or cooking in the soaking water instead of draining it.
Natural Bitter Compounds in Beans
All beans contain compounds that taste bitter to varying degrees. The two biggest culprits are saponins and tannins, both concentrated in the seed coat (the skin) and the outer layers of the bean. Your tongue detects these through a family of bitter-taste receptors, and some people are more sensitive to them than others.
Saponin levels vary dramatically between bean types. Chickpeas contain 2.6 to 60 grams of saponins per kilogram of dry weight, making them one of the most saponin-rich legumes. Green peas fall in the range of 1.8 to 11 g/kg, while broad beans (fava beans) are on the lower end at 0.1 to 3.7 g/kg. Even at low concentrations, these compounds are detectable. A mixture of common bean saponins can trigger a bitter sensation at less than 2 milligrams per liter of water.
Tannins sit primarily in the seed coat and are responsible for that dry, puckery sensation that sometimes accompanies bitterness. Darker beans, like red beans and black beans, tend to have higher tannin content than lighter varieties like cannellini or navy beans. This is why darker bean cooking water often looks deeply colored and can taste noticeably more astringent.
Fava Beans Are Especially Bitter
If you’re cooking fava beans (also called broad beans), bitterness is particularly common. Fava beans contain two unique compounds called vicine and convicine that are potent bitter agents. Convicine is especially strong: in lab testing, it registered as the single most powerful bitter compound in fava bean protein, with a “dose over threshold” factor as high as 233 (meaning it was present at 233 times the concentration needed to taste it). Vicine is milder but still significant, ranging from 12 to 50 times its taste threshold depending on the preparation.
These compounds are classified as antinutritional factors, and for people with a specific enzyme deficiency (common in Mediterranean, African, and Southeast Asian populations), they can also trigger a serious reaction called favism. For everyone else, the main issue is simply that they make fava beans taste unpleasant if not properly handled. Removing the outer skin of fava beans after blanching eliminates much of this bitterness.
Cooking in the Soaking Water
This is the most common and easily fixable cause of bitter beans. When you soak dried beans, saponins and tannins leach out of the skins and dissolve into the water. If you then cook the beans in that same water, you’re essentially simmering them in a bitter broth.
Experimental data from red bean preparations illustrates how significant this is. Beans boiled without any water changes contained 7.31% coarse tannin and 2.61% coarse saponin. After one water change (draining the soaking water and adding fresh), tannin dropped to 5.58% and saponin to 1.85%. With multiple water changes, tannin fell to 3.64% and saponin to 1.47%, a reduction of roughly 50% and 44% respectively. Tannic acid, the fraction most responsible for that puckery bitterness, dropped from 0.71% to 0.28%, a 60% reduction.
The fix is simple: always drain and rinse your beans after soaking, then cook in fresh water. If you’re working with a particularly bitter variety like red beans or chickpeas, you can take it a step further by bringing the beans to a boil, draining that water, and starting again with a fresh pot. Each water change pulls more bitter compounds out.
Undercooking and Hard Water
Beans that are still firm or slightly undercooked will taste more bitter than fully cooked ones. As beans soften, their cell structures break down and release bitter compounds into the cooking liquid (which you can discard). Beans that stay tough trap those compounds inside, concentrating the bitterness in every bite.
Hard water, which is high in calcium and magnesium, can prevent beans from softening properly. The minerals bind to compounds in the bean skins and keep them firm, even after hours of cooking. If your tap water is hard and your beans never seem to get fully tender, try adding a tiny amount of baking soda to your cooking water. About an eighth of a teaspoon per quart of water (roughly 0.06% by weight) is enough to raise the pH into the alkaline range, which helps beans soften without adding any detectable flavor. Going much higher than that can make beans mushy and introduce a soapy taste, so keep it minimal.
Old or Improperly Stored Beans
Dried beans have a long shelf life, but they don’t last forever. Over time, the small amount of fat in beans oxidizes, producing off-flavors that can taste bitter, stale, or metallic. Beans stored in warm or humid conditions deteriorate faster. If your dried beans are more than a year or two old, or if they came from a bulk bin with unknown turnover, rancid lipids may be contributing to the bitterness.
You can sometimes tell by smell: old beans have a faintly musty or cardboard-like odor when dry. They also take significantly longer to cook and may never fully soften. If you suspect your beans are past their prime, no amount of soaking and water changes will fully fix the flavor. Fresh beans from a source with good turnover are the simplest solution.
Fermentation and Spoilage
If you soaked your beans for too long, especially in a warm kitchen, bacterial fermentation may have started. When proteins break down through fermentation, some of the byproducts are bitter. This is a normal and sometimes desirable process in foods like cheese and soy sauce, but in a pot of soaking beans it creates unpleasant flavors. Beans soaked for more than 24 hours at room temperature, or any beans that smell sour or foamy when you drain them, may have begun to spoil.
Bitterness in general serves as a biological warning signal. Many plant toxins are bitter, and your taste receptors evolved to flag them. Soybeans contain saponins that are toxic at high concentrations in the bloodstream. Castor beans contain ricin. The bitter taste in your everyday cooking beans isn’t dangerous at normal consumption levels, but if beans taste unusually bitter and you can’t explain it through any of the causes above, trust your palate and discard them.
How to Fix Bitter Beans
If you’re mid-cook and your beans already taste bitter, drain the cooking liquid, rinse the beans, and continue cooking in fresh water. This won’t remove all the bitterness, but it will reduce it noticeably. Adding an acid like a splash of vinegar or a squeeze of lemon juice at the end of cooking can help mask remaining bitterness by shifting your palate’s attention toward sourness and brightness. Salt also suppresses bitter perception, so seasoning generously at the end makes a real difference.
For future batches, the most effective approach is preventive. Soak beans for 8 to 12 hours, drain completely, rinse well, and cook in fresh water. For especially bitter varieties like red beans, chickpeas, or fava beans, do a quick pre-boil: cover with water, bring to a rolling boil for 2 to 3 minutes, then drain and start over. Peel fava beans after blanching to remove the bitter outer skin entirely. Store dried beans in a cool, dry place and try to use them within a year of purchase.

