API bugs in production caused by contract changes. Please share your experiences

As part of my workshop on “Introduction to Contract Testing with Pact”. I ask people to share their experiences with API issues/changes which have caused production issues.

For example:
You are supporting 2 versions of the API for legacy systems. You make contract changes to both API’s due to sharing the base model which causes the V1 API to break due to this being a breaking change. You were not aware V1 were using this API in that way causing downtime for a critical part of your business operations.

Another example:
As part of keeping your API responses clean and concise, you implement json serializer which strips out null values from the response. However one of your consumers relies on this value to exist within the API response even if it returns null, therefore causing the Web App to return an error on a mandatory field causing errors to be thrown where they shouldn’t.

Do you have similar experiences, can you share them with the community and this will give me more examples to share as part of my 99 minute workshop. Look forward to hearing your war stories.


One I saw recently was making a field required that was not before. Another sneaky issue is using enumerations which require the clients to update before they cause use added properties. Then there’s just the format of the response changing completely which happened with a vendor of a tool meant to improve API design lol. Another subtle problem is adding more data requirements for the API that might make it less useful overall because it is too specific and not generic enough. For example and email API but requires a business domain id like a system-specific document id.


These are similar to my experiences too. I’m sure other people have experienced these instances as well!

1 Like

In several cases, one of our teams would make changes to a contract for one of their web services and test those changes but forget that the mobile app is also a consumer of the service. Once the change went live, the mobile service would break and need to be updated as a hot-fix.