Random Images not showing up on my website

Hey guys,

Randomg images are not showing up on my website. These images are random, so they can be different every single day. They are showing up with an error also in Wordpress wp-admin. Like you see here:

For example, here are two imgates that I found with the error: (if you click on them, it will take you to the link.

It depends on when you open these images, you’ll be able to see the error or not. This random images can be different every day. Because of this reason, I also opened a ticket with support and sent them the HAR files. But I thought, perhaps someone here have an idea of what’s happening.

The issue get fixed when I purged all cache. So, it seems it’s a cache related issue. The only images I’m serving from my server are the logo, futured images, and social images because there is not an option to serve them from a CDN in Wordpress. I’m only having this issue with those images served from my server. That becomes a problem on my live website on the category post pages which use featured images.

I have just updated my Staging website so that it is the same as my live website, but I haven’t been able to find the error on the Staging website.

I would really appreciate if someone could help me.
Thank you in advance.

I indeed can confirm, that I can reproduce your problem.

  1. Broken Image: LINK
  2. bypassing Cloudflare: LINK (same URL, with a random queryString appended)

Your settings ATM are:

Polish: :white_check_mark:
Lossless: :white_check_mark:

Can you please write an EMail to support [at] cloudflare [dot] com and post the ticket #id you get from them here.

Hi Martin,

I’ve already contacted customer support, and they told me to disable Polish. So, I have disabled it, erased the cache, and at the moment I’m testing.
Right now, it is possible to see again the images as you may see above. Everytime I purged the cache the issue is solved temporary. Hopefully, by disabling Polish the issue is solved permanently. I’ve had enabled Polish for a long time, so it’d be strange that Polish is creating the issue. Anyway, thank you for checking, and when I have the issue solved, I will write here the solution, perhaps is usefull for the community.
Best wishes,

That is unusual - I cannot replicate with that image, currently.

Would you be able to capture a HAR file when it happens and share it with me?

Note, you can use Page Rules to enable Polish just on specific URLs for testing. For example you could create a page rule for the URL https://mayangateway.com/wp-content/uploads/2021/04/san-blass-island-panama-central-america.jpg?polishtest=123 and set Polish to Lossy on that page rule.

1 Like

Hi Simon,

You can’t replicate it anymore because suppport adviced me to turn off Polish and to purge cache. When I purge the cache the issue is temporary solved.

That’s a good idea to set a Page Rutel to enable Polish. I’ve created it, and I will be testing it:

Speaking of Page rules, this is the Page Rule I have for the uploads folder where the images are:

I tried to attach HAR files to this message, but it seems it’s only possible to attach images?

I also found out that my host had the mayority of these Cloudflare IP’s blocked: https://www.cloudflare.com/en-gb/ips/ - They have now unblocked all of them. I’m not sure if that had something to do with the issue.

Thank you for your help!

@MayanTraveler you’d need to purge the cache for that URL also - once you do that, Polish should operate on the image as per your page rule. Once are able to reproduce, we can take a look into it.

Hi @simon

The issue still persists. The URL I used to enable Polish hasn’t shown the issued yet, but I just found today another image with the issue, here it is: https://mayangateway.com/wp-content/uploads/2020/11/coral-reef-W5V4Z9W-e1618667341676.jpg

I haven’t purchased the cache of this image so that you can see the issue. Would you please take a look?

OK - so the fact that you can still replicate with Polish disabled after purging your Cloudflare cache tells us that this has nothing to do with Polish and likely not even Cloudflare.

Indeed, if I check your example image URL with cURL, here’s what I see:

🚨 $  curl https://mayangateway.com/wp-content/uploads/2020/11/coral-reef-W5V4Z9W-e1618667341676.jpg -sv
...
> GET /wp-content/uploads/2020/11/coral-reef-W5V4Z9W-e1618667341676.jpg HTTP/2
> Host: mayangateway.com
> user-agent: curl/7.77.0
> accept: */*
>
* Connection state changed (MAX_CONCURRENT_STREAMS == 256)!
< HTTP/2 200
< date: Mon, 23 May 2022 10:11:22 GMT
< content-type: image/jpeg
< cache-control: private, max-age=86400, must-revalidate, proxy-revalidate, s-maxage=0
< cf-bgj: h2pri
< cf-edge-cache: no-cache
< last-modified: Sunday, 22-May-2022 22:05:51 GMT
< cf-cache-status: HIT
...
< server: cloudflare
...
<
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="robots" content="noindex, nofollow">
<title>One moment, please...</title>
<style>
body {
    background: #F6F7F8;
    color: #303131;
    font-family: sans-serif;
    margin-top: 45vh;
    text-align: center;
}
</style>
</head>
<body>
<h1>Please wait while your request is being verified...</h1>
<form id="wsidchk-form" style="display:none;" action="/z0f76a1d14fd21a8fb5fd0d03e0fdc3d3cedae52f" method="get">
<input type="hidden" id="wsidchk" name="wsidchk"/>
</form>
<script>
(function(){
    var west=+((+!+[])+(+!+[]+!![]+[])+(+!+[]+!![]+!![]+!![]+!![]+!![]+!![])+(+!+[]+!![]+!![]+!![]+!![]+[])+(+!+[]+!![]+!![]+!![]+!![]+!![]+!![])+(+!+[]+!![]+[])+(+!+[]+!![]+!![])+(+![]+[])),
        east=+((+!+[])+(+!+[]+!![]+!![]+[])+(+![])+(+!+[]+[])+(+!+[])+(+!+[]+[])+(+!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(+!+[]+[])),
        x=function(){try{return !!window.addEventListener;}catch(e){return !!0;} },
        y=function(y,z){x() ? document.addEventListener("DOMContentLoaded",y,z) : document.attachEvent("onreadystatechange",y);};
    y(function(){
        document.getElementById('wsidchk').value = west + east;
        document.getElementById('wsidchk-form').submit();
    }, false);
})();
</script>
</body>
* Connection #0 to host mayangateway.com left intact
</html>%

You can see here there is HTML content with a form called wsidchk-form being returned with a content-type: image/jpeg. The cf-cache-status: hit header tells us this response came from your origin and was cached by us.

I googled for wsidchk-form and couldn’t find much information about what this HTML is from, but I am guessing it is some kind of anti-bot technology running in your origin infrastructure. That will be causing this, and not Cloudflare.

Do you have any security / anti-bot plugins enabled on your origin firewall / server or wordpress? If so, try disabling these and then purging your cache. That should resolve it for you.

1 Like

Thank you for your help @simon I appreciate it. This is very strange, I don’t have any anti-bot or security plugins, because I think Cloudflare is enough and better.

I already told my server to unblock the Cloudflare IPs, but I guess, I will have to ask them to check if they have some type of anti-bot technology, or perhaps they know what the imunify360-webshield/1.18 is.

Hopefully, they can assist me, if so, I will write it here.

@MayanTraveler I think you’re correct in identifying immunify360 webshield as the source of the problem - most other mentions online (and in fact on other community threads) talk about this causing the issue. So you’ll need to ensure this tool is disabled and that should stop your image responses from being broken by it.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.