in addition to Willk's answer, which may have discovered the age of some of your spice rack contents - cumin & other short-life ground spices can sometimes be flat even when new, from supermarkets. Whole seed, fresh ground on demand, can be shelf-stable for longer.

Also, I'd be inclined to use fresh or frozen ginger - pulped works well from frozen.

Contra to expectation, garlic powder is often used in restaurant-style carry bases. Alternatively, frozen, pulped can be used, but sometimes I will add a bit of powdered near the end too.

Also, hunt down some fenugreek powder for an instant 'Ooh, it's just like a curry' aroma. You can add this late in the cook.

I always consider a curry sauce to be a two-stage cook [same with a good chilli].  
You get your 'bass' from the long cook, your 'treble' from what you add near the end. 

Ground coriander goes in early, as part of your bhuna/bhogar [wet or dry frying] at the start. If you use tomato puree [by UK definition, the stuff in a squeezy tube] then use a wet-fry bhuna and add the puree late in this stage.  It takes some bitterness out of it. Using a bhuna rather than bhogar makes it harder to burn stuff too - much easier if you're not practised at this.  

Garam masala [basically a blend of aromatics] goes in late. If you can find them, such as ajwan seeds can add a piquancy late, or sprinkled over when serving.  

Fresh coriander goes in right as you serve, or just sprinkled on top. Its flavour starts to dissipate as soon as it's heated. To keep it tasting bright & fresh… it has to *be* bright & fresh.  

Some other things can go in both early *and* late.  
Onions can be in your base sauce, then some newly-fried added ten minutes before serving. Processed tomatoes early, & fresh tomatoes late. The same for fresh chillies, some to cook down into invisibility, some late as a 'brightener'.