How to Fix Cloudflare Error 1003 (Direct IP Access Not Allowed)
What Error 1003 means
When a website sits behind Cloudflare, every legitimate visit follows the same path: you type a domain name, your browser resolves it to a Cloudflare edge IP, and Cloudflare forwards the request to the site's real server after applying its firewall rules, caching, and bot checks. Error 1003 — 'Access Denied: Direct IP Access Not Allowed' — appears when someone skips the domain name and connects to a Cloudflare IP directly. Cloudflare recognizes the request as direct-IP access and refuses it, because without the domain name it cannot apply the site's security rules or route to the right website.
This block is intentional and permanent: there is no setting, flag, or browser trick that lets a visitor through it. Direct IP access is exactly what attackers use to bypass Cloudflare's protection — find the origin server's IP and attack it straight — so Cloudflare treats every direct-IP request as untrusted by default. If you are seeing a 1003, the site is almost certainly fine for everyone else; something on your side simply addressed the request to numbers instead of a name.
Common causes
- Browsing a raw IP in the address bar: pasting or typing an address like http://104.21.5.10/ — often copied from a DNS lookup tool, a ping result, or a tutorial — triggers the block immediately.
- Bookmarks or shortcuts pointing at the IP: an old bookmark saved before the site moved behind Cloudflare keeps sending the browser straight to the IP on every visit.
- Scripts and tools hardcoding the IP: scrapers, uptime monitors, RSS readers, and API integrations that store the server's IP instead of its domain name get a 1003 on every request.
- Browser extensions or embedded resources: an extension, widget, or page embed that loads a resource from the raw IP triggers the error even when the address bar shows a proper domain name.
- VPN or proxy rewriting requests: some VPNs, corporate proxies, and aggressive privacy tools resolve hostnames to IPs and forward IP-based requests, which Cloudflare rejects the same way.
How to fix Error 1003 — step by step
Steps 1 through 3 fix the common visitor cases. Steps 4 through 6 cover tools, extensions, and network software.
- Check the address bar for a raw IP address. Error 1003 fires when the request goes to a Cloudflare IP directly instead of the website's domain name, so the first check takes five seconds: look at your browser's address bar. If it shows numbers like http://104.21.5.10/ or http://[2606:4700:...]/ instead of a name like example.com, that is exactly what Cloudflare is blocking. Reaching a Cloudflare-protected site by its IP is denied on purpose, because only requests through the domain get the firewall, caching, and security checks. This single mismatch is the cause in almost every real-world case.
- Browse the domain name instead of the IP. Replace the IP address with the site's actual domain name and press Enter. If you found the IP from a DNS lookup tool, a ping result, or an old tutorial, just type or paste the real website name (for example www.example.com) into the address bar. Cloudflare serves the site normally the moment the request carries the correct hostname, so the 1003 page clears instantly — no cache clearing, no waiting, no settings changes. If you do not know the domain name, search for the site by name instead of trying to guess it from the IP.
- Fix bookmarks, shortcuts, and auto-complete entries pointing at the IP. If the 1003 comes back every time you visit, something on your side keeps sending you to the IP. Open your bookmarks manager (Ctrl+Shift+O in Chrome, Ctrl+Shift+B in Firefox) and search for entries whose URL contains a raw IP instead of the domain name. Update or delete them, and check desktop shortcuts and browser auto-complete suggestions too — an old bookmark made before the site moved behind Cloudflare is one of the most common triggers. After fixing them, close and reopen the browser so no cached suggestion reopens the old address.
- Update scripts, API clients, and tools that hardcode the IP. Error 1003 frequently shows up in web scrapers, monitoring tools, RSS readers, uptime checkers, and custom API integrations that store the server's IP instead of its domain. Open the script's configuration or code and replace every hardcoded IP address with the domain name, keeping the HTTP Host header correct — a request to the IP with the right Host header can still be blocked, so the URL itself must use the name. If a third-party tool triggers the error, report the issue to its developer with a screenshot; they need to fix their endpoint configuration.
- Use the browser's network tab to find the direct-IP request. When the error appears only on certain pages, widgets, or embeds, press F12 to open developer tools, go to the Network tab, and reload the page. Scan the request list for any row whose URL starts with http:// or https:// followed by numbers instead of a domain name — that request is the 1003 trigger. It may come from a browser extension, an embedded player, or a page element loading a resource from the IP. Once identified, correct the source (update the extension's settings, fix the embed code, or contact the site owner if the broken link is on their page).
- Disable extensions and check for proxy or VPN interference. Some browser extensions, VPNs, and corporate proxies rewrite requests or resolve hostnames to IPs before the request reaches Cloudflare, which can produce a 1003 even though the address bar shows a proper domain name. Open an incognito window (which loads without extensions by default) and try the site again — if it works there, re-enable extensions one by one until the error returns to find the culprit. VPN and proxy users should also try with the VPN paused once, because an exit node doing IP-based forwarding can trigger the same block.
Did this fix it? Quick checklist
- The address bar now shows the site's domain name, not a raw IP address
- Old bookmarks, shortcuts, and auto-complete entries pointing at the IP are updated or deleted
- Scripts, bots, and monitoring tools use the domain name in their URLs and Host headers
- The 1003 does not reappear in an incognito window (rules out extension or proxy rewriting)
One detail worth knowing: a 1003 page that looks slightly different — plain text saying 'Access Denied: Direct IP Access Not Allowed' instead of a branded error page — usually means you hit the raw origin IP, not even Cloudflare's edge. The site's server itself refused the direct connection. Either way the fix is the same: go back to the domain name. And if you are the one who built the link, app, or tool that points at the IP, treat the domain name as the only stable address — IPs rotate whenever the site changes hosts, so hardcoding them guarantees this error eventually.
Frequently asked questions
What does Cloudflare Error 1003 mean?
Error 1003 — 'Access Denied: Direct IP Access Not Allowed' — means your request reached a Cloudflare IP address directly instead of going through the website's domain name. Cloudflare blocks direct IP access as a security measure: requests must carry the domain name so traffic passes through Cloudflare's firewall, caching, and filtering. It is not a sign the site is broken — the block exists to stop attackers from bypassing Cloudflare's protection by connecting straight to the IP.
Can I access a Cloudflare-protected site through its IP address?
No — Cloudflare intentionally blocks direct IP access to sites using its proxy, and there is no visitor-side setting that allows it. You must use the site's registered domain name. This protects the site's real origin server from being found and attacked directly. If you landed on the IP from a bookmark, tutorial, or DNS lookup, replace it with the domain name and the error disappears immediately.
Why does my web scraper or bot get Error 1003?
Because the scraper is targeting the server's IP address directly, or sending requests without a proper Host header. Update your code or tool configuration to use the domain name in the URL and to include the correct HTTP headers with each request. If the site owner also runs bot protection, you may additionally need to comply with their robots rules or request API access — a 1003 specifically flags the IP-based access, though, so fixing the URL is the first step.
How do I find the request causing Error 1003?
Open your browser's developer tools with F12, switch to the Network tab, and reload the page. Look for any request whose URL begins with a raw IP address (numbers, possibly in square brackets for IPv6) rather than a domain name. That request is the one Cloudflare rejects. It often comes from a browser extension, an embedded resource, or a misconfigured tool — correcting that request's URL to use the domain name resolves the 1003.
Does Error 1003 mean the website is hacked or down?
No. Error 1003 is an access-control response, not evidence of a hack or an outage — the site is usually working fine for everyone browsing it by its domain name. The block only affects requests that skip the domain name and hit a Cloudflare IP directly. If you are a visitor, nothing about your connection is broken: just use the site's domain name. If you are the site owner and visitors keep hitting the error, check your DNS settings so records point users at your domain rather than exposing a direct IP.