my Bitbucket Cloud Website returns 403 via .NET Framework 4.8 System.Net.HttpWebRequest.
code and exception:
var request = WebRequest.Create("https://kancollesniffer.bitbucket.io/versions.txt");
var response = request.GetResponse();
> System.Net.WebException: The remote server returned an error: (403) Forbidden.
> at System.Net.HttpWebRequest.GetResponse()response headers:
Connection: keep-alive
X-Cache: Error from cloudfront
X-Amz-Cf-Pop: NRT57-P5
X-Amz-Cf-Id: Jp5fyPmsHooIT9W4ocAbnMJGsWDtGVKZaiFIJ_cJMK5cfBEelschwg==
X-XSS-Protection: 1; mode=block
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; preload
Content-Length: 919
Content-Type: text/html
Date: Wed, 17 Jun 2026 12:10:51 GMT
Server: CloudFront
Via: 1.1 0022b1e4d062aad4e3e205fe38617b5c.cloudfront.net (CloudFront)
response body:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD><BODY>
<H1>403 ERROR</H1>
<H2>The request could not be satisfied.</H2>
<HR noshade size="1px">
Request blocked.
We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.
<BR clear="all">
If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.
<BR clear="all">
<HR noshade size="1px">
<PRE>
Generated by cloudfront (CloudFront)
Request ID: Jp5fyPmsHooIT9W4ocAbnMJGsWDtGVKZaiFIJ_cJMK5cfBEelschwg==
</PRE>
<ADDRESS>
</ADDRESS>
</BODY></HTML>
but, curl command and web browser works.
> curl -i https://kancollesniffer.bitbucket.io/versions.txt
HTTP/1.1 200 OK
Date: Wed, 17 Jun 2026 14:33:53 GMT
Content-Type: text/plain
Content-Length: 255
Server: AtlassianEdge
Last-Modified: Mon, 01 Jun 2026 04:11:09 GMT
Etag: "42013acc7ae79310cd940c5c55bf0d80"
X-Used-Mesh: False
Vary: Accept-Language, origin
Content-Language: en
X-View-Name: bitbucket.apps.hosted.views.serve
X-Dc-Location: Micros-3
X-Served-By: f14ebdfc9fa2
X-Version: e99ceea34118
X-Static-Version: e99ceea34118
X-Request-Count: 913
X-Render-Time: 0.11988234519958496
X-B3-Traceid: b2787bf88c9d4113a92308f34f52b5a0
X-B3-Spanid: 73d460bb1cfb4e6c
Cache-Control: max-age=900
X-Usage-Quota-Remaining: 998079.784
X-Usage-Request-Cost: 1955.03
X-Usage-User-Time: 0.051448
X-Usage-System-Time: 0.007203
X-Usage-Input-Ops: 0
X-Usage-Output-Ops: 0
X-Content-Type-Options: nosniff
X-Xss-Protection: 1; mode=block
Atl-Traceid: b2787bf88c9d4113a92308f34f52b5a0
Atl-Request-Id: b2787bf8-8c9d-4113-a923-08f34f52b5a0
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
Report-To: {"endpoints": [{"url": "https://dz8aopenkvv6s.cloudfront.net"}], "group": "endpoint-1", "include_subdomains": true, "max_age": 600}
Nel: {"failure_fraction": 0.01, "include_subdomains": true, "max_age": 600, "report_to": "endpoint-1"}
Server-Timing: atl-edge;dur=733,atl-edge-internal;dur=2,atl-edge-upstream;dur=732,atl-edge-pop;desc="aws-ap-southeast-2"
16.12 KancolleSniffer
b23538aaee23071329889c2fbdf4ce887b732223a0fde7591e5b7c0621158e35 *proxy.pac
15ec0632ae6c082c33063b4153d16c70cc1be9014b1512f815e50b8024e5e29d *EnemySlot.csv
8212ed467dae1be4e83642fd2e579487192e2dbe6702f5ddb00fa31bce3c134f *minasw.csv
