@ZergGirl is going to be your best bet at bumping this forward friend.
Sounds like a job for support engineering.
Until then check your port configuration files and see if you can’t fix it manually.
- Save a safe copy
- Update all packages via shell just in case
- Manually make port configuration changes
- Test changes
- Apply patches
- Keep safe copy and version control it labeled with the bug if you ever need to reproduce it and isolate the issue
Sloppy Joe says:
“Most likely, this is a Replit infra change combined with a missing [[ports]] section. In older deployments, $PORT binding may have been enough. Now the platform seems to require explicit port mapping in .replit for healthchecks.“
### 1. Add a `[[ports]]` section to your `.replit`
Even if your app already binds to `$PORT`, Replit sometimes needs this explicit mapping for healthchecks. Your `.replit` could look like this:
```toml
run = “gunicorn main:app --bind 0.0.0.0:$PORT”
[[ports]]
port = 0
protocol = “http”
```
**Explanation:**
- `port = 0` tells Replit to automatically assign the correct runtime port (usually what `$PORT` provides).
- `protocol = “http”` ensures the healthcheck knows it’s HTTP, so it checks `/health`.
- Your `run` line stays the same, using `$PORT`.
-–
### 2. Optional: specify the healthcheck endpoint
If you want to be extra explicit, you can also add:
```toml
[healthcheck]
path = “/health”
```
This makes sure Replit checks the correct route instead of guessing.
-–
### 3. Redeploy
- Save the `.replit` changes.
- Stop the current deployment (if running).
- Start a fresh deploy.
- The healthcheck should now hit the correct port instead of `1104`.
-–
**Why this works:**
Replit’s new deployment system sometimes defaults to a “random” port for healthchecks if there’s no `[[ports]]` section. Adding it aligns the container port with your app’s `$PORT`.
-–
Trial and error
Wait for @ZergGirl or @FranciscoCM
Blow up the thread with frustration if you must.
Welcome to the forum by the way!