Heat olive oil in a medium saucepan over medium heat.
Add flour and whisk continuously for 1-2 minutes to create a roux.
Stir in chili powder, cumin, garlic powder, and onion powder.
Cook for another minute until fragrant.
Add tomato sauce and stir until well combined.
Gradually pour in vegetable broth, whisking to avoid lumps.
Bring the mixture to a simmer, stirring occasionally.
Season with salt, pepper, and optional sugar to taste.
Reduce heat and let the sauce simmer for 10-15 minutes.
Remove from heat and allow to cool slightly before using.