The build was perfect, but the traffic never arrived. The logs showed calls hitting the front door, yet the service was silent inside. The issue wasn’t code—it was the PaaS internal port.
In a Platform-as-a-Service environment, every app listens on a specific port for incoming requests. That port must match the one your PaaS runtime expects. If they differ, the router won’t pass traffic to your app. Common defaults like 8080 or 5000 are not guaranteed. Some providers set unique internal port values and ignore what your code binds to unless you configure it correctly.
The “PaaS internal port” is the port number assigned by the platform for app routing inside its network. It’s not exposed to the public internet—you won’t see it in a browser’s address bar. It acts as the binding point between the outer HTTP routing layer and your process. In container-based PaaS like Heroku, Render, or Cloud Foundry, environment variables often store this number (e.g., $PORT). Your process must listen on it so the PaaS router can connect.