For the past few days I was working on a solution for one of the product that I take care of. We were launching a new feature and for that we needed to run some scripts. I finished the development and after doing some review and testing we were ready. I deployed the updates on our testing server and used the new feature. Since the project is on Laravel, I was using custom artisan commands to run my scripts. After spending some hours of completing the checklist, we were ready for production update.
This feature was very exciting and I had been working on it for some time. It was a new addition that would open up a whole new avenue in our product. Today was the day, where we were taking the first step towards taking our project to a new level. I checked the platform after making the deployment.
Internal Server Error was the message that I saw. It didn’t make any sense as I had tested it on the exact replica of this system and everything worked. There was no hiding form that fact that the whole platform was down from a perfectly normal deployment.
I poked around and tested if I had missed anything. I went back and checked the testing server to see if there was any mismatch in the steps. The issue could not be replicated anywhere except the production. I worked on it for some time and narrowed down on the possible cause. But still did not have the answer to why it was breaking.
I looked back at the situation and thought about the solution. Evaluated the time already spent on identifying the issue, and how much it could possible take to find it and have it resolved. I evaluated the importance of the module and also possible alternate way of doing it as I had a sense of where what was going wrong.
The earlier one was the perfect solution, where we find the issue and fix it. The other one was the imperfect one, by looking away at the problem and providing a solution to bypass the situation. But the later solution showed a higher promise of delivering the solution in a fixed time investment. It was the right solution as it showed the path to the resolution of conflict.
I stuck to the right solution and it worked. We delivered the item with minimum delay.