In a medium saucepan, heat the vegetable oil over medium heat. Whisk in the flour to create a roux. Cook for about 1 minute, or until it starts to bubble.: The moment the oil becomes shimmering you will notice a slight ripple across the surface, a visual cue that the pan is ready. The oil should feel warm to your wrist if you hover above the pan carefully, not smoking. When you add the all purpose flour in the next step it will sizzle lightly, and that sound tells you the roux is forming properly. A common misstep is using too high heat which can scorch the oil, so keep the flame at a steady medium to preserve a clean flavor.
Add the garlic and onion to the roux, and continue to cook for another minute, or until the roux is fragrant and golden.: As you stir the all purpose flour into the hot oil, the mixture will go from slick to pasty, then lighten and begin to bubble. Keep whisking so small lumps do not form, and watch for a faint toasty aroma, which means the raw flour taste is fading. This process matters because the roux is what thickens the gravy without a pasty mouthfeel. If the roux starts to brown too fast, lower the heat and whisk continuously to keep it even.
Gradually whisk in the chicken broth, ensuring there are no lumps.: After about one minute the roux will show small vigorous bubbles and a golden tint, signaling it is cooked enough to lose any flouriness. You will also catch a toasty scent that is pleasant and slightly nutty. This short cooking time gives the gravy body while keeping it light, but if you go much longer you risk developing bitter notes. Watch carefully and trust the visual cues more than the clock.
Stir in the oyster sauce, soy sauce, sesame oil, and a pinch of white pepper. Bring the mixture to a simmer.: When the minced garlic and onion hit the warm roux they will sizzle softly and release an aromatic cloud that fills the kitchen. Stir so they soften and become translucent without browning, which preserves sweetness and prevents bitterness. This step builds the flavor foundation of the gravy, and if you rush it you may end up with raw tasting aromatics, so be patient until they smell sweet and toasty.
Mix cornstarch with water to form a slurry. Slowly pour the slurry into the simmering sauce, stirring constantly.: Pour the low sodium chicken broth in a slow, steady stream while whisking vigorously; the sound will change from a sizzle to a gentle simmer. As the liquid incorporates the sauce will smooth out and thin, then begin to thicken as it heats. This gradual approach prevents lumps and creates a silky texture. A frequent error is dumping all the broth in at once which can create clumps that are hard to break up, so take your time.
Continue to cook until the gravy thickens enough to coat the back of a spoon, about 3 to 5 minutes. Taste and adjust the white pepper if needed.: Once the sauce comes together, add the oyster sauce and soy sauce for depth, then the small amount of sesame oil for fragrance, and finish with a pinch of white pepper . Stirring now lets the flavors meld as the sauce reaches a gentle simmer. This layering is important because each ingredient contributes a distinct note that results in a balanced profile. Over seasoning at this stage is easy to do, so taste after it simmers for a moment and adjust carefully.
Bring the mixture to a simmer: As the gravy reaches a simmer you will see small bubbles break the surface and steam rising steadily. The aroma will turn richer and more cohesive, and the sauce will begin to reduce slightly, intensifying the flavors. Simmering helps the components marry and allows you to assess seasoning. Avoid a rolling boil which can break down the glossy finish and alter the texture.
Mix cornstarch with water to form a slurry: Combine the cornstarch with cold water until the mixture is smooth and opaque, without any streaks. The cold water prevents the starch from clumping, and when you add it to the hot gravy it will hydrate properly and thicken predictably. A common mistake is mixing the starch into hot liquid which can create gelatinous lumps, so always dissolve it in cold water first.
Slowly pour the slurry into the simmering sauce stirring constantly: As you drizzle the slurry in, keep the whisk moving so the gravy accepts the starch uniformly and thickens without streaks. You will notice the sauce taking on a glossy sheen and body within moments, moving from fluid to a coating consistency. This action matters because even incorporation prevents gummy patches. If you add the slurry too quickly you risk overshooting the thickness and creating an uneven texture.
Continue to cook until the gravy thickens enough to coat the back of a spoon about 3 to 5 minutes: Watch for the gravy to cling to a spoon and form a clean line when you run your finger through it, that is the sensory sign you want. The aroma will be fuller and the surface will look glassy. Cooking a bit longer helps eliminate any raw starch taste and stabilizes the texture. Be careful not to overcook which can lead to an overly stiff sauce, so remove it from heat when it reaches that spoon coating stage.
Taste and adjust the white pepper if needed: After tasting, tiny tweaks can bring the sauce into perfect balance, often a pinch more white pepper or a smidge of soy sauce does the trick. The final taste should be savory and rounded, with no single element overpowering the rest. If you oversalt, try to balance with a touch more broth but be cautious; prevention by using low sodium broth earlier is the better path.