The 2 AM Deployment Nightmare: When You Can't Fix What You Can't See
A virtual lab deployment that wouldn't work, Node version mysteries, and my first real mentor at Coding Jr. Sometimes the biggest lessons come from the most frustrating nights.
December 13, 2025
The Task That Seemed Simple
Add a new virtual lab to the application. Deploy it. Make it live.
Simple, right? I had done deployments before. Built projects before. This should be routine.
I finished the feature, tested it locally, everything worked perfectly. Time to hand it over to Sneh Soni sir for deployment.
What followed was one of the most frustrating - and educational - nights of my developer journey.
The Error That Wasn't There
Sir tried to deploy. It failed.
Okay, no problem. Let me check the error... except there wasn't one. At least, not one I could see.
The deployment kept failing, but when I built the project locally? Perfect. No errors. No warnings. Clean build every single time.
I remember the exact time - somewhere between 2:14 AM and 2:40 AM - we were just staring at the screen, asking the same question over and over:
"Why isn't it deploying? What's the error?"
But here's the thing about invisible errors - you can't fix what you can't see.
The Frustration Loop
Build 1: Success locally. Deployment fails.
Build 2: Success locally. Deployment fails.
Build 3: Success locally. Deployment fails.
Build 4: Success locally. Deployment fails.
Four builds. Four successes on my machine. Four failures on deployment.
The classic developer nightmare: "But it works on my machine!"
I tried different approaches. Changed configurations. Double-checked dependencies. Nothing.
The frustration was real. It's 3 AM. Then 4 AM. My brain is fried.
Finally, around 4 AM, exhaustion won. I had to sleep. The problem would have to wait.
The Morning Revelation
Next day, Sneh sir asked a simple question that changed everything:
"What Node version are you using?"
Me: "The latest one, sir."
Sir: "Try changing to v17."
Wait, what? Node version? That's causing deployment failures?
I switched to Node v17. Built the project.
And there it was. The error. Finally visible. Finally debuggable. Finally fixable.
The NVM Enlightenment
This is when I learned about NVM - Node Version Manager.
Before this, I thought Node was just Node. You install the latest, you're good. Why would the version matter?
Turns out, it matters A LOT:
- Different Node versions have different APIs and behaviors
- Package dependencies are often tested against specific Node versions
- Production servers might run different versions than your local machine
- What builds on Node 20 might break on Node 17 (or vice versa)
NVM lets you switch between Node versions instantly. One command and you're on a different version. Test on v17, switch to v18, try v20 - all without uninstalling anything.
This single tool would have saved me that entire night of frustration.
The Newbie Mistake
Here's where it gets embarrassing.
At some point during the debugging chaos, I manually edited the package-lock.json file.
If you're experienced, you just cringed. If you're new, let me explain: package-lock.json is auto-generated. You don't touch it manually. Ever.
I didn't know that. I saw something that looked wrong, I "fixed" it. Classic newbie move.
Sometimes, as a beginner, you push code without properly looking at what you're pushing. You're so focused on "make it work" that you don't stop to understand what you're doing.
I was guilty of this. Pushing commits without reviewing. Making changes without understanding the implications.
The First Real Mentor
Sneh Soni sir was my first proper mentor at Coding Jr.
Let me tell you about this person:
- He gave me real tasks - not tutorials, not sandbox exercises, actual production work
- When I messed up, he scolded me. Properly. No sugarcoating.
- But then he showed me how to fix it. Every single time.
- He didn't do the work for me. He pointed me in the right direction and expected me to figure it out.
That night, he could have just taken over. Fixed the deployment himself. Moved on.
Instead, he asked about my Node version. Made me understand why it mattered. Let me experience the "aha" moment myself.
That's mentorship. Not doing the work for someone. Teaching them to do it themselves.
Lessons From That Night
1. Environment Matters
Your local machine is not the production server. Different OS. Different Node version. Different configurations. Test in environments as close to production as possible.
2. Learn Your Tools
NVM, Docker, environment variables - these aren't optional nice-to-haves. They're essential tools that prevent exactly this kind of nightmare.
3. Don't Touch What You Don't Understand
package-lock.json exists for a reason. Before you "fix" something, understand what it does. Google it. Read the docs. Ask someone.
4. Review Before You Push
git diff is your friend. Look at what you're committing. Understand every change. Rushed pushes create debugging nightmares.
5. Invisible Errors Are Version Problems
If something works locally but fails in deployment with no clear error, check versions first. Node, npm, packages - version mismatches are silent killers.
6. Sleep Is Not The Enemy
At 4 AM with a fried brain, you're not problem-solving. You're just staring. Sometimes the best debugging tool is sleep.
What Sneh Sir Taught Me
Beyond the technical fix, sir taught me something bigger:
Every mistake is a learning opportunity, but only if someone holds you accountable.
He could have been nice about my mistakes. Let them slide. Fixed them quietly.
Instead, he made sure I understood:
- What I did wrong
- Why it was wrong
- How to fix it
- How to prevent it next time
That's not just a mentor. That's someone who actually cares about your growth.
The Growth Since Then
That deployment nightmare was months ago. Since then:
- I always check Node versions before starting any project
- NVM is installed on every machine I use
- I never touch auto-generated files without understanding them
- I review every commit before pushing
- I document my environment setup for every project
One frustrating night. Permanent lessons learned.
To Fellow Newbies
If you're new to development and reading this:
- You will have nights like this. Accept it.
- The frustration is part of the process. Embrace it.
- Find a mentor who will scold you AND teach you. Both matter.
- Document your mistakes. They become your best learning material.
- "It works on my machine" is never the answer. Find out why it doesn't work elsewhere.
Thank You, Sneh Sir
To Sneh Soni sir - thank you.
Thank you for not letting me off easy.
Thank you for asking the right questions instead of just giving answers.
Thank you for being the first person at Coding Jr to treat me like a real developer, mistakes and all.
That 2 AM to 4 AM frustration session taught me more than weeks of tutorials ever could.
The virtual lab eventually deployed. The feature went live. The project moved forward.
But what stayed with me wasn't the deployment success. It was the lesson:
You can't fix what you can't see. But with the right mentor, you learn how to see.
Here are some other articles you might find interesting.

When Preparation Meets Reality: My Zensar Interview Experience
I spent a month preparing for a hackathon, received an email about 'Java/Python and MySQL Assessment', yet still made assumptions. Here's what happened, the valuable lessons from Rajesh Madhai sir, and why fundamentals and personal responsibility matter most.
Balancing Academics and Coding Skills: A Student Developer's Guide
How do you maintain good grades while building real development skills? After years of juggling both, here's what actually works.