TL;DR
I quoted Company A a fixed price amount to write some software using a product from a particular Vendor (that I selected). But these products didn't work as advertised and I discovered multiple show-stopping bugs. I spent considerable time and effort researching the root cause of the bugs and convincing tech support that the bugs actually existed. In effect I was doing free QA for the Vendor for their commercial products. In doing so I burnt through more than my wildest dreams of the contingency time I built into my fixed price quote. Can I ask the Vendor for compensation? Or do I just have to suck it up?
The long version
2 months ago Company A (who I know well) asked me if I wanted to take on a small software project that involved supplying some 3rd party hardware and integrating it into their system. I googled around for suitable hardware, and worked up a fixed price quote for about 1 1/2 weeks work - which included reasonable extra contingency time based on my experience in the problem domain.
In doing my searching the Vendors products matched my requirements almost perfectly. Choosing products from a different vendor would have meant building a much more complex system with less functionality.
I then got Product 1 from the Vendor. Day 1 of using product 1 I run into a show stopping bug. I spend time investigating the issue and finally submit a ticket to the Vendor. 24 hours later they fixed the bug (which was totally obvious if anyone had actually used the product). Later on I run into another show stopping bug. This time it literally takes me days to convince tech support that there is an issue. Finally they admit that there is a bug and instead of trying to fix it, they offer me my money back. When pressed they finally say "it's an obscure bug in an older product, and we don't have the expertise to fix it now.". So basically I am screwed over that product.
Next I get product 2 from the Vendor that uses a different technology and hopefully won't have the same obscure bug as the last one (but it does entail a rewrite of the interface section). Right off the bat I start seeing something that I think is a bug, but because it seems random I can't put my finger on it. But after days worth of testing it eventually it becomes more and more obvious that it is not me. So I submit a ticket. Tech support basically comes back with "Nah, its you, it's not us". I can't prove a thing so I let it drop. A couple of days later I run into a different, show stopping bug. I spend time proving its them and not me, and submit a bug. This one is so obvious and they admit that it caused major discussions in their office about how things should actually work before they came up with a solution. Then I am back to doing burn-in tests and start running into that "random" bug that I first encountered. I profile my code and the system and start to get an understanding of where and when the issue is triggered. I re-open the conversation with tech support, but they keep denying that its them and when they actually do reproduce the behavior on their end they discount it as not being their issue. Eventually (after significant testing) I come up with smoking gun that points directly back to them and is reproducible 100% of the time. That was yesterday and I am still waiting to hear their reply.
Now to the actual question. I took on a fixed price contract with Company A and chose to complete it with the Vendors product. Being fixed price I knew that I was taking on risk, but if the Vendors products had worked as advertised, or close to then that risk was under control. However I ran into multiple show stopping bugs in the the Vendors products. Researching and identifying the root causes of these bugs has cost me significant amount of time well and easily over a factor of 10 over any contingency I considered. I feel put out by the because I feel like I have had to lead them around by the nose and point directly at the issues and make the issues so obvious that the Vendor can't ignore them. In this respect I feel like I have been acting as free QA for their products and have put in significant hours in doing so.
So is their anyway I can approach the Vendor and say something like (albeit it politely)
I have spent a significant about of time researching the root causes of the screwups in your products and doing the QA that your own team was too dumb or too lazy to do. You owe me Bud.
I don't feel that I can go back to Company A and ask for more (although I might be able to get more out of them) as it was not their issue. The amount is also not high enough to justify bringing in lawyers as I would easily pay out what I got back. But anyway I have no actual monetary loses, just my time, as I am waiting for another company to get back to me with their next project for me - and their projects make this one look like peanuts in comparison.