Fixing Loopback Request Issue in WordPress in Docker

If Site Health shows “Your site could not complete a loopback request” (or The REST API encountered an error) when running WordPress in Docker behind a reverse proxy (e.g., Caddy), the culprit is often that extra_hosts entry pointing to a container IP that changes on restart. Which is always as a solution to solve the loopback issue.

The fix (use a Docker network alias)

Let Docker’s built-in DNS keep things in sync by giving your proxy container a network alias that matches your site’s domain. Then all other containers resolve the alias to the current IP automatically. Would be a better solution than specifying the internal IP for PHP container:

services:
  caddy:
    # ...your existing caddy config...
    networks:
      default:
        aliases:
          - example.com

Now remove any extra_hosts lines you previously added to other services (like php).

Apply & verify

# Recreate containers
docker compose up -d

# From the php container, confirm the alias resolves
docker compose exec php getent hosts example.com

# (Optional) Hit wp-cron directly
docker compose exec php curl -I https://example.com/wp-cron.php?doing_wp_cron=1

Return to Tools → Site Health and re-check: loopback should pass, and scheduled tasks will run normally.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *