Aug 21, 2024

Remote debugging in Heroku

Discover how to easily set up remote debugging for your Node.js app on Heroku, and diagnose issues like a pro with our step-by-step guide!
Shivam Pundir
Shivam PundirSenior Software Engineer - II
lines

Hey there, fellow coder! Have you ever wished you could just step through your Node.js app running on Heroku like a local app? Well, grab your favorite drink and get comfy because we’re about to embark on a fun journey to set up remote debugging on Heroku!

Why Remote Debugging?

Debugging is a crucial part of development, ensuring your app runs smoothly and efficiently. Remote debugging is especially important when your app is deployed on a server, allowing you to diagnose issues that only appear in a deployed environment.

Prerequisites

Before we jump in, make sure you have:

  • A Node.js application deployed on Heroku.
  • The Heroku CLI installed on your machine.

Debugging Steps

Step 1: Enable Remote Debugging

First, we need to enable remote debugging for your Node.js app. Heroku uses the inspect flag to allow remote debugging.

  1. Modify Your Procfile: Add the --inspect flag to your Procfile. It should look something like this:

2. Deploy Changes to Heroku: Commit your changes and push to Heroku:

Step 2: Open a Remote Debugging Session

Now that your app is configured, it’s time to connect to the remote debugger.

  1. Restart Your Heroku App: Restarting ensures the inspect flag is applied:

2. Forward Debugging Port: Forward traffic on a local port to a port inside a dyno; in this case both the local port and dyno port are 9229:

Step 3: Connect Your Debugger

With the SSH tunnel set up, you can now connect your favourite debugger. 

Using VS Code

  1. Open VS Code: Launch VS Code and open your project.
  2. Configure Debugger: Add a new configuration in your launch.json:

3. Start Debugging: Select the "Attach to Heroku" configuration and start debugging. Set breakpoints, inspect variables, and step through your code like in a local environment.

Using IntelliJ IDEA / Webstorm

  1. Open Run Config: Open your IDE and go to Run > Edit Configurations. 
  2. Configure Debugger: Click the + button and select Attach to Node.js/Chrome:

Screenshot 2024-08-08 at 4.00.33 PM.png

3. Start Debugging: Select your newly created Node.js Remote Debug configuration, Click the debug icon and start debugging. Set breakpoints, inspect variables, and step through your code like in a local environment.

And there you have it! You’ve just set up remote debugging for your Node.js app on Heroku. High five!  Debugging in the cloud just became a whole lot cooler, right? If you hit any bumps along the way, double-check your SSH tunnel and configurations. Happy debugging!

Hire our Development experts.