In a heavy large pot, heat the vegetable oil over medium-high heat.
Add the onions and cook until translucent, about 5 minutes. Cool slightly.
In a medium bowl, mix together the onion, rice, cilantro, ground meat, 1 teaspoon salt, and 1 teaspoon pepper. Using wet hands, shape the meat mixture into 20 to 22 (1-inch) meatballs.
Combine the carrots, serrano chile, potato, tomato paste, and vegetable stock in a saucepan and bring to a boil.
Add the meatballs and zucchini and simmer on low heat until the meatballs are cooked through, about 20 minutes. Season the soup with salt and pepper, to taste.