I’ve been working on a project lately that was proceeding smoothly (for the most part) towards launch. I was working as part of a diverse team, some technical, some not, and we tested extensively on our staging environment. Everything was working great so we deployed to production to do our final testing.
We ended up running into a strange bug almost immediately – our payment processor couldn’t pass information it needed to back to our application. There was no way to tell what was happening because our server wasn’t even showing a connection from the payment processor so there was nothing to debug on our end. It was confounding. We redeployed our code to ensure that it was the same on both staging and production and copied all data from production to staging and the problem persisted.
Fortunately, we were working with a host who was committed to helping us solve our problems. We submitted a support ticket and I started searching for a reason and solution on my own.
After a copious amount of searching and iteration over pages and pages of Google search results, I finally found something that looked like it might be helpful. I immediately documented my findings in the support ticket and proposed some possible solutions on our host’s side. Based on my findings, our support tech was able to figure out the actual problem and suggest some solutions, which we pursued.
Over the course of 36 hours, the support tech and I passed probably four dozen messages back and forth. There is no way that I could have solved this without his help and there is no way that he would have gotten down the right path without my ridiculously verbose messages. In the end, this mystery bug wouldn’t have been solved without our ability to communicate and that is something that I’ve found to be true throughout my freelance career.