Heat the olive oil in a saucepan over medium heat. Add the onion and cook for 4–5 minutes until translucent. Add the garlic and cook 1 minute more, until fragrant.
Stir in the flour, chili powder, smoked paprika, cumin, oregano, cocoa powder, and salt. Cook for 1 minute, stirring constantly, to toast the spices and cook off the raw flour taste.
Slowly whisk in the vegetable broth, a little at a time, to keep the mixture smooth. Whisk in the tomato sauce, minced chipotle, and adobo sauce.
Bring to a gentle simmer and cook uncovered for 10–12 minutes, stirring occasionally, until thickened enough to coat the back of a spoon.
Remove from heat and stir in the apple cider vinegar, maple syrup, and orange zest. Taste and adjust salt as needed.
Use immediately over enchiladas, or cool and store in an airtight container in the refrigerator for up to 5 days, or freeze for up to 3 months.
Notes
Yields approximately 3 cups of sauce. Serving size is ~¼ cup.