You haven't failed! Kids go through spurts of likes and dislikes. My oldest lived on mac&cheese & chicken nuggets for what seemed like FOREVER. There are plenty of way to get some fruit & veggies in covertly. Have you tried smoothies. I also make muffins using pumpkin and spice muffin mix with a little water...that's it. We also do a mac&cheese that uses canned butternut squash to help make the "cheese" sauce. Making muffins & bread like pumpkin, banana & zucchini gets some in too. Does he eat pasta with sauce you can hide a lot of veggies in pasta sauce by blending them first:) It may be a texture thing so try them different ways, raw with dips, cooked, smashed, etc. Most kids love dips, so fruit with yogurt may work for your son. My kids LOVE roasted root vegetables (squash, sweet potatoes, carrots,potatoes).
Try to let him pick a new fruit/veggie every week at the store with the understanding that he has to try at least one bite without gagging. The gagging is a power struggle thing not the actual food, both my kids did it too. I also found that my kids are more willing to try new things if they get to choose it. So they go through their kids cookbooks and pick new recipes to try out.
Be patient. What he likes today he may not tomorrow. Remember just like adults his tastes will change. Good luck!