Solved: 'Server IP Address Not Found' Error During Shopify Custom App Installation

Hey everyone,

Ever hit a wall during Shopify custom app development, especially when you're just trying to get your brilliant idea installed and talking to your store? It's a common snag, and one we recently saw pop up in the community that really highlights a crucial piece of the local development puzzle.

One of our fellow developers, usman18, ran into the dreaded "Server IP address could not be found" error when trying to install their custom Node.js + Express app. They'd done all the right things, or so it seemed: set up the app in the Partner dashboard, configured URLs and scopes, got their local server running on http://localhost:3000, and even fired up ngrok to get that public HTTPS forwarding URL. They used that ngrok URL for their App URL, Redirect URL, and Webhook URL, then released a new app version and tried reinstalling. Yet, that stubborn error persisted, blocking the OAuth authentication and API usage. Frustrating, right?

The Core Culprit: A DNS Detective Story

Thankfully, another sharp community member, youssefhe5, quickly chimed in with a spot-on diagnosis: this usually screams "DNS issue." It's not that your server isn't running, or that ngrok isn't working at all. The problem is that Shopify, when it tries to connect to your app during the installation and OAuth flow, isn't looking in the exact right place or at the exact right time.

Think of it like this: Shopify needs a public address to talk to your app. For local development, localhost:3000 isn't public, so we use tunneling services like ngrok to create a temporary, public HTTPS URL that points to your local machine. The catch? These ngrok URLs often change every time you restart ngrok.

Why Ngrok (or a Tunneling Service) is Non-Negotiable for Local App Development

Before we dive into the fix, let's address a common question usman18 had: "Can this be solved without using ngrok, maybe with Postman?" The short answer, as youssefhe5 clarified, is no.

Shopify's OAuth flow, which is how your app gets permission to interact with a store, absolutely requires a publicly accessible HTTPS URL. This is for security and to ensure a reliable connection. Tools like Postman are fantastic for making direct API requests, but they don't host a server that Shopify can redirect to as part of the app installation process. So, for local development, a tunneling service like ngrok, Cloudflare Tunnel, or localtunnel is essential to bridge that gap between your local machine and Shopify's servers.

The Step-by-Step Fix: Syncing Your URLs

The solution, as highlighted in the discussion, boils down to a critical synchronization step between your active ngrok tunnel and your Shopify Partner dashboard settings. It's easy to miss, but once you know it, you'll save yourself a lot of headaches.

Here’s how to make sure Shopify can find your app and complete the installation:

  1. Verify Your Local Server and Ngrok Tunnel:

    First, double-check that your local Node.js server is actively running, typically on http://localhost:3000 as usman18 had it. Then, ensure your ngrok tunnel is active and correctly forwarding to that local address. You should see something like this in your ngrok terminal:

    ngrok http 3000

    This command tells ngrok to tunnel HTTP traffic from its public URL to your local port 3000.

  2. Grab the CURRENT HTTPS Forwarding URL:

    Look at your active ngrok terminal. You'll see a line that says "Forwarding" with a unique HTTPS URL. This is the URL Shopify needs. It'll look something like https://abcdef12345.ngrok.io. Copy this URL exactly.

  3. Update Your Shopify Partner Dashboard (Crucial Step!):

    Now, head over to your Shopify Partner dashboard. Navigate to your custom app's settings. You need to update two specific fields with the exact ngrok HTTPS URL you just copied:

    • App URL: Paste your ngrok URL here.
    • Redirect URLs: This is super important! If you have multiple redirect URLs listed, update all of them to include your current ngrok URL. Shopify uses these to redirect back to your app after authentication.

    Save your changes in the Partner dashboard.

  4. The Ngrok Restart Reminder:

    Here's the kicker and the most common reason for this error: if you restart your ngrok tunnel, it will almost certainly generate a brand new HTTPS forwarding URL. If that happens, you must repeat steps 2 and 3. Shopify won't magically know your URL has changed!

    For those using the Shopify CLI to generate apps, there's a handy setting you can add to your shopify.app.toml file to help with this during development: automatically_update_urls_>. This prevents the CLI from trying to update URLs, giving you more control, but for purely custom apps set up manually, the manual update is key.

By meticulously keeping your ngrok URL and your Shopify Partner dashboard settings in sync, you'll resolve the "Server IP address could not be found" error and get your custom app installed and authenticating smoothly. It's a classic case of a small detail making a big difference in the world of development. Keep building those amazing apps!

Share:

Use cases

Explore use cases

Agencies, store owners, enterprise — find the migration path that fits.

Explore use cases