Troubleshooting Decision Trees

July 16, 2026 ยท View on GitHub

Use one tree at a time. Record observations before changing configuration.

Domain Does Not Resolve

Does Domain List show the expected active registration?
  |-- No -> Fix registration status first.
  `-- Yes
       |
       Does dig NS show the intended external nameservers?
         |-- No -> Check registration-level NS values and cached delegation.
         `-- Yes
              |
              Does each authoritative server answer SOA?
                |-- No -> Fix the external DNS zone or service availability.
                `-- Yes
                     |
                     Does the requested record exist on the authoritative server?
                       |-- No -> Add or correct it in the external DNS zone.
                       `-- Yes -> Compare recursive cache and TTL.

DNS Resolves but Website Times Out

Does the hostname return the intended address?
  |-- No -> Fix external DNS.
  `-- Yes
       |
       Is the server reachable on the network?
         |-- No -> Check routing and server availability.
         `-- Yes
              |
              Is port 80 or 443 listening?
                |-- No -> Start or configure the web server.
                `-- Yes
                     |
                     Do network and host firewalls allow the connection?
                       |-- No -> Apply the reviewed firewall rule.
                       `-- Yes -> Check virtual host, TLS, and application logs.

Wrong Website Appears

Does DNS return the intended server?
  |-- No -> Correct the external DNS record.
  `-- Yes
       |
       Does curl with the Host header return the intended virtual host?
         |-- No -> Fix server_name or virtual-host ordering.
         `-- Yes
              |
              Is a proxy or browser cache serving old content?
                |-- Yes -> Inspect cache headers and purge only the correct cache.
                `-- No -> Check deployment directory and current revision.

HTTPS Fails

Does HTTP reach the intended server?
  |-- No -> Fix DNS, routing, firewall, or web server first.
  `-- Yes
       |
       Is port 443 listening?
         |-- No -> Configure the HTTPS virtual host.
         `-- Yes
              |
              Does the certificate cover the requested hostname?
                |-- No -> Issue or select the correct certificate.
                `-- Yes
                     |
                     Is the certificate current and chain trusted?
                       |-- No -> Repair renewal or chain configuration.
                       `-- Yes -> Check redirect loops, application errors, and mixed content.

www Works but Root Fails

Does the root have the intended A or AAAA record in external DNS?
  |-- No -> Create the required external DNS record.
  `-- Yes
       |
       Does the web server accept the root hostname?
         |-- No -> Add it to the virtual host.
         `-- Yes
              |
              Does the certificate cover the root hostname?
                |-- No -> Include it in certificate issuance.
                `-- Yes -> Check canonical redirect configuration.

Only Some Users Fail

Do failing users receive a different DNS answer?
  |-- Yes -> Compare TTL, resolver cache, IPv4, and IPv6.
  `-- No
       |
       Do they use a different protocol path or network?
         |-- Yes -> Test IPv6, proxy, firewall, and regional routing.
         `-- No
              |
              Do they receive different HTTP cache or application content?
                |-- Yes -> Inspect cache keys and headers.
                `-- No -> Collect exact client error and timestamp.

Email Does Not Arrive

Does dig MX return the issued mail exchangers?
  |-- No -> Fix MX records in external DNS.
  `-- Yes
       |
       Do MX target hostnames resolve?
         |-- No -> Fix mail-host address records.
         `-- Yes
              |
              Does the mail system accept the recipient and domain?
                |-- No -> Fix mail-system configuration.
                `-- Yes -> Inspect delivery logs, rejection response, and spam handling.

Deployment Fails

Did configuration validation pass?
  |-- No -> Do not reload; fix or restore configuration.
  `-- Yes
       |
       Does the local application or static directory work?
         |-- No -> Fix deployment files or application process.
         `-- Yes
              |
              Does the public virtual host work?
                |-- No -> Check proxy, permissions, firewall, and logs.
                `-- Yes -> Verify DNS, TLS, and external monitoring.

When to Roll Back

Prefer rollback when:

  • User impact is significant.
  • A known-good previous state exists.
  • Diagnosis will take longer than the acceptable outage.
  • The change is the likely cause.
  • Rollback does not destroy required evidence or data.

Continue to Checklists and Templates.