### Problem There's the [new image hosting system][1] and Super User (my main "playground") [is trialling it][2]. My problem is I cannot see images hosted on `i.sstatic.net`. This is how it looks like: [![placeholder instead of an image][3]][3] This particular screenshot is from the following question: [*USB-C Splitter for external SSD enclosure*][4]. The link to the image is https://i.sstatic.net/KnVuyq7G.jpg and when I click it I see: [![oh no, that request didn't look right RayID: 872140670bf8772e][5]][5] `wget 'https://i.sstatic.net/KnVuyq7G.jpg'` gives me: ``` --2024-04-10 10:12:58-- https://i.sstatic.net/KnVuyq7G.jpg Resolving i.sstatic.net (i.sstatic.net)... 104.18.41.33, 172.64.146.223 Connecting to i.sstatic.net (i.sstatic.net)|104.18.41.33|:443... connected. HTTP request sent, awaiting response... 400 Bad Request 2024-04-10 10:12:59 ERROR 400: Bad Request. ``` `curl -o result 'https://i.sstatic.net/KnVuyq7G.jpg'` gives me the following content in the `result` file: ``` <!DOCTYPE html> <html> <head> <link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Arimo'> <style> body { font-family: 'Arimo', sans-serif; text-align: center; font-size: .9em; background-color: white; color: gray } .container { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100vh; } img { max-width: 100%; height: auto; } </style> </head> <body> <div class='container'> <img src='https://i.sstatic.net/wiC8UD6Y.png'> <p>oh no, that request didn't look right<br>RayID: 872149dd09dabfc6</br></p> </div> </body> </html> ``` The above describes how the situation looks at my home, let's call it *Location A*. I have SSH access to a remote computer, *Location B* (details below). *There* I can also do `wget 'https://i.sstatic.net/KnVuyq7G.jpg'` and the result is: ``` Downloading 'https://i.sstatic.net/KnVuyq7G.jpg' Connecting to 172.64.146.223:443 Writing to 'KnVuyq7G.jpg' KnVuyq7G.jpg 100% |*******************************| 202k 0:00:00 ETA Download completed (207108 bytes) ``` Then `file KnVuyq7G.jpg` reports: ``` KnVuyq7G.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 1200x1600, components 3 ``` so from *B* the link works fine. **Now the crazy part:** once the link is accessed from *B*, it starts working when accessed from *A*! Now I can refresh the linked question in my browser and the image is there. I can `wget` on *A*, there is no longer `400 Bad Request`; and I can `curl` on *A*, there is no longer `oh no, that request didn't look right`. Each method shows or downloads the proper `.jpg` file. So the action on *B* fixed the problem with this particular image on *A*. This makes me believe the problem is not on my computer(s) in the *Location A*. I suspect there is something wrong with the content delivery network or so. **Can you fix this globally, so I can simply (without tricks) see images posted on Stack Exchange? Or is the problem nevertheless on my side? Or the ISP's?** I'm posting few RayIDs down below, hopefully they will help. I'm also curious about the mechanism that allows actions of *B* affect abilities of *A* to access resources. If it's really a problem with the content delivery network and some developer briefly explains what happened then this will be a nice bonus. --- ### Details - *Location A* is not a single computer. I have tested from few computers. *Location A* consists of: - my home with - a home router with Debian 12 implementing NAT - a laptop with Kubuntu 23.10 with Vivaldi browser behind the NAT - my workplace where I also tested on - a virtual machine with Debian 12 behind (another) NAT My home and my workplace share an ISP. Each uses a separate IPv4 address in the `213.5.145.0/24` range. The addresses are globally routable. - *Location B* is a home router I can access via SSH, it runs some version of OpenWRT. It's in a different town than *A*, it uses a different ISP than *A*. It's behind CGNAT and the public IP address is `185.138.239.xxx`. - *Location A* and *Location B* are in Poland. - To be clear: fixing links for *A* involves no tunneling nor proxying via *B*. The sole act of accessing a link from *B* magically fixes it for *A*. - There is virtually no delay: a link does not work on *A*, I run `wget` on *B*, in few seconds I refresh it on *A* and it suddenly works. - I have fixed several links this way. The method worked each time exactly as stated. For now it's my only firm way to deal with the problem. - I have observed few images that started showing on *A* "by themselves". I suspect in this case some random user(s) of the Internet had done the job of *B* for me. - The example link was posted on Super User, but I have also observed the problem on Ask Ubuntu (e.g. [here][6]). - I'm using my laptop in the *Location A* to ask this very question. I was afraid I wouldn't be able to add images, but the site still uses Imgur and there was no problem. As a test I started writing a question on Super User, uploaded an image and encountered `oh no, that request didn't look right` from `i.sstatic.net`. In other words I couldn't see the file I have uploaded… until I accessed it from *B* which again fixed it for *A*. This means the act of uploading from *A* went well. - In my tests `i.sstatic.net` resolved either to `172.64.146.223` or to `104.18.41.33`. It seems it doesn't matter which IP address is used at which stage, the problem and my method of dealing with it behave consistently. - RayIDs of my unsuccessful tries to access https://i.sstatic.net/KnVuyq7G.jpg from *A*: `872140670bf8772e`, `872149dd09dabfc6`. This is one of the images I have already fixed by accessing from *B*. - RayIDs of my unsuccessful tries to access another image uploaded by me: `8721e856df81353a`, `8721e999fe58353a`. I have not fixed this image by accessing its link from *B*; I'm not going to. I deliberately do not post the link, so hopefully nobody inadvertently fixes it before the right person or team starts investigating. --- ### Hypothesis One scenario that (I think) makes sense is: 1. Initial requests from *A* do not find the resource (image) on CDN nodes in geographical proximity. The requests ultimately go to a distant server that refuses serving to the IP addresses of *A* for some reason. 0. A request from *B* ultimately goes to the same or to another server that serves the resource to the IP address of *B* successfully. 0. The resource gets copied to a node (or cache) closer to *B* automatically. 0. It so happens this node (or cache) is the best choice when *A* requests the resource again. 0. It so happens this node (or cache) has no problem with serving to the IP addresses of *A*. With this hypothesis the "crazy part" is no longer that crazy. [1]: https://meta.stackexchange.com/q/395024/355310 [2]: https://meta.superuser.com/q/15188/432690 [3]: https://i.sstatic.net/5BIW2.png [4]: https://superuser.com/q/1838284/432690 [5]: https://i.sstatic.net/JTrci.png [6]: https://askubuntu.com/q/1509671/693277