> For the complete documentation index, see [llms.txt](https://docs.hivel.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hivel.ai/self-managed-hivel-deployment/virtual-private-cloud/azure/dns-setup-azure/troubleshooting.md).

# Troubleshooting

DNS Setup (Azure)

### Certificate Not Issued / Caddy Logs Show Errors

**Likely causes:** DNS not yet propagated, port 80 blocked by the Network Security Group, or the domain pointing at the wrong IP.

**Diagnostic commands:**

```
# Confirm DNS resolves to VM's IP
dig +short hivel.yourcompany.com
 
# Confirm port 80 is reachable from the internet
curl -I http://hivel.yourcompany.com
 
# Check Caddy's logs for the specific ACME error
docker logs caddy --tail 100
```

**Resolution steps:** wait for DNS propagation if dig doesn't yet show VM's IP; open port 80 on the NSG if curl times out; correct the A record if it points at the wrong IP.

**How to verify the fix:** docker logs caddy --tail 100 shows certificate obtained successfully.

**What to collect for Hivel support:** output of the three diagnostic commands above.

### "Connection Refused" on Port 443

**Likely causes:** the Caddy container isn't running, or the NSG doesn't allow inbound 443.

**Diagnostic commands:**

```
# Confirm the container is running
docker ps | grep caddy
 
# Confirm the Network Security Group allows inbound 443
```

**Resolution steps:** start Caddy if it isn't running (docker start caddy, or re-run the Step 3 command); add an inbound rule for 443 on the NSG if missing.

**How to verify the fix:** `curl -I https://<domain-or-ip>` returns a response instead of a connection error.

### UI Loads but Shows a Blank Page or 502

**Likely causes:** the UI container itself is unhealthy - unrelated to Caddy.

**Diagnostic commands:**

```
# Confirm the UI container itself is healthy
docker ps | grep insightly-ui
 
# Confirm it's still reachable on port 3000 directly
curl -I http://localhost:3000
```

**Resolution steps: i**f the UI container isn't healthy, this is a deployment issue unrelated to Caddy - see Troubleshooting in the main deployment guide.

**How to verify the fix:** `curl -I http://localhost:3000` returns a healthy response, and the HTTPS URL then loads correctly.

Next: Quick Reference.

{% columns %}
{% column %} <a href="/self-managed-hivel-deployment/virtual-private-cloud/azure/dns-setup-azure/upgrading-from-option-b-to-option-a-and-managing-the-caddy-container.md" class="button primary" data-icon="backward">Upgrading Option B→A</a>
{% endcolumn %}

{% column %}

{% endcolumn %}

{% column %} <a href="/self-managed-hivel-deployment/virtual-private-cloud/azure/dns-setup-azure/quick-reference.md" class="button primary" data-icon="forward">Quick Reference</a>
{% endcolumn %}
{% endcolumns %}
