Heat the olive oil in a large pot or Dutch oven over medium heat. Add the onion, celery, carrot, salt, and several grinds of pepper. Cook, stirring occasionally, for 10 to 15 minutes, or until soft. Add the garlic, cumin, coriander, and chili powder and stir for 30 seconds. Stir in the beans and their liquid, chipotles, adobo sauce, and broth. Simmer for 30 minutes.: You will hear a gentle shimmer as the olive oil warms and see a faint ripple across the surface, which means the pan is ready. The oil should be warm enough to lightly sizzle a drop of water, not smoke. This gentle heat prevents the aromatics from browning too fast. If the oil starts smoking, reduce the heat immediately, remove the pan from the burner for a moment, and let it cool slightly before proceeding.
Let cool slightly, then transfer half of the soup to a blender. Puree until smooth, then add it back to the pot with the remaining soup and stir. Alternatively, use an immersion blender to puree half the soup in the pot. Stir in the lime juice.: As these vegetables hit the pan you will notice a soft sizzle and the scent of raw greens and onion turning sweet. Stir so the pieces coat in oil and season, which encourages even softening. Cook them over medium heat so they sweat and release moisture instead of crisping. A common mistake is rushing with too high heat, which can brown the vegetables and introduce bitter notes rather than developing a mellow base.
Season to taste and serve with lime wedges and desired toppings.: You want the vegetables to become translucent and tender, not mushy. The aroma will transform from sharp to mellow and slightly sweet, and the pot will take on a savory perfume. Use this time to scrape the pan bottom occasionally, because fond building keeps flavor. If you see bits stuck and burning, lower the heat and add a splash of broth to deglaze.
Add the garlic, cumin, coriander, and chili powder and stir for 30 seconds: When you add the garlic and spices, the kitchen fills with warm, toasty notes almost immediately. Stir constantly during this brief step so the spices bloom in the oil without burning. The thirty second window is enough to coax out the aroma while preventing bitterness. If you smell anything acrid, the spices are burning, so remove the pan from heat for a moment and reduce the flame.
Stir in the beans and their liquid, chipotles, adobo sauce, and broth: Pouring in the black beans and their can liquid will quiet the pan and create a hearty, opaque broth. The chipotle peppers and adobo sauce add deep smoky color, so stir until everything is evenly distributed. The visual change to a darker, unified pot signals that flavors are melding. If the mixture looks too thick, add a little extra broth, but go slowly to avoid diluting flavor.
Simmer for 30 minutes: During the simmer the aroma will deepen, and the beans will soften further, releasing starch that naturally thickens the soup. Tiny bubbles should gently break the surface, not a rolling boil, so adjust heat to maintain a calm simmer. This steady cook draws flavors together and allows the chipotle to mellow. If you need to shorten time, note the flavor will be less integrated.
Let cool slightly, then transfer half of the soup to a blender: Cooling for a few minutes prevents a hot splatter when you blend. The contrast between whole beans and the silky puree is what gives the finished bowl its pleasing body. When transferring to a blender, leave space for steam, and hold the lid with a towel to avoid a pressure burst. A frequent error is blending while piping hot without venting, which can lead to spills and burns.
Puree until smooth, then add it back to the pot with the remaining soup and stir: The pureed half should be velvety and glossy, creating a creamy base when reunited with the chunky half. Stirring them together yields a balanced texture. If the puree seems too thick, add a splash of broth to loosen it before combining. Overblending can make the texture gluey, so pulse to reach a silky but still fresh mouthfeel.
Alternatively, use an immersion blender to puree half the soup in the pot: With an immersion blender you can keep everything in the pot, and you will see the texture change under the blade from chunky to smooth. Move the blender slowly so you achieve an even puree. Keep the head submerged to prevent splatter. Be careful not to overwork the soup, as that can create an overly uniform texture.
Stir in the lime juice: The bright scent of lime juice hits immediately, lifting the smoky and savory notes and balancing the richness. Add it at the end to keep that citrusy freshness intact. Taste after adding lime, and adjust seasoning if needed. Adding too much citrus at once can overpower the bowl, so add gradually.
Season to taste and serve with lime wedges and desired toppings: Before plating, sample a spoonful and tweak salt, pepper, or acidity. The toppings bring contrast, so arrange them just before serving so textures remain crisp. If a bowl tastes flat, a little extra salt or a squeeze of lime usually brightens it. A common oversight is adding garnishes too early which can wilt or lose crunch.