For the meatballs, in a large bowl, combine the ground chicken, egg, bread crumbs, salt, pepper, ginger, garlic, and cilantro. Form into 1-inch balls and set aside.
Set a large dutch oven over moderate heat. Add the coconut oil. Once melted, add the meatballs in a single layer. Do not overcrowd the pan. If necessary, brown the meatballs in batches. Cook the meatballs until browned on both sides. We're not looking to cook them all the way here, just browning them slightly. Transfer them to a plate and set aside.
Add the onion and garlic to the skillet and sauté until softened, about 5 minutes. Stir in the curry powder and curry paste and cook for about 1 minute to develop their flavor. Stir in the coconut milk and chicken stock. Add the carrots and potatoes and cook, covered, for 10 minutes. Uncover and stir in the fish sauce, sugar and a large pinch of salt. Return the meatballs to the pot and give it a gentle stir to submerge. Cover, reduce heat to low and cook for 15 to 20 minutes or until the potatoes and carrots are fork tender and the meatballs have fully cooked through.
In the meantime, to make the relish, combine the vinegar, sugar, salt and 1 cup of water in a medium saucepan. Set over medium heat and bring to a simmer. Cook until the sugar has dissolved and the mixture has slightly thickened, about 5 minutes. Remove from the heat and allow to cool.
In a large bowl, combine the shallots, cucumber, red bell pepper, yellow bell peppers, and Thai chile. Pour the cooled syrup over the vegetables and stir until combined. Chill until ready to use. Can be kept in the fridge for up to 1 week.
Once curry is done, serve over rice, garnish with cilantro and serve with the relish. Enjoy!