When you're a service provider, the place to experiment with code modifications is not on your customer's service.  It's something to be done in a controlled environment where you can learn the maximum amount about the changes you're making while keeping the service you're being paid for up and running.

I recently fell victim to a service provider who decided that they needed to make breaking changes to their public API without telling anyone.  After several conversations with this provider, I learned that they make changes to the API all the time.  This time it bit me.  

This particular provider offered an adaptive streaming service for a fairly reasonable price.  I didn't have to deal with video encoding and they guaranteed a level of compatibility that made their service attractive.  Anyone who's hosted videos online knows that it's a bandwidth intensive proposition and encoding for maximum compatibility is no trivial task.  I had never encoded for adaptive streaming and because my customer was phasing that out, it seemed like a good idea to farm out that hosting and spend my time on things that would survive into the future.

it started simply, on a Wednesday I think, with a few random calls about IOS failing to load the videos correctly.  I (incorrectly) assumed it was a cache issue, or possibly an iOS update issue because a simple refresh would resolve the problem.  Tech support 101: reset it.  I had recently updated one of my iPads and I experienced the problem exactly once and the reset fixed it permanently.  That worked for a couple of days.  Then the other browsers started having issues - and not small ones.  This time I was able to get error output from the console log - and it was not good.

Without getting too technical - there were some major changes in a javascript file provided by the video hosting service.  Being a Friday night, and having no published tech support numbers for the video host - I was left with no choice but to return to the old non-adaptive streaming I had provided to my customer previously.  This meant that their traveling international users would have difficulty watching the videos - but having some users up and running was better than having zero users up and running.

Fast forward to last night.

I have successfully automated a new process where I can encode and publish adaptive streaming videos for my customer.  This new capability offers a greater degree of control than the hosting service offered and I am able to keep yet another service in-house, reducing overall costs.

It seems that my poor choice in service provider has made my own service offering better. So it's a win-win!