The day GoComics went bad
Having subscribed to Inbox Comics, I noticed that today, March 28, their daily mail claimed that most comics weren’t updated. In the past, their system did have occasional glitches for one comic or another, but not of this magnitude!

Now, for the sake of precision, I must say that Shoe is duplicated on Comics Kingdom, but Inbox Comics takes it from GoComics, so it failed.
But why did this major disruption take place? The answer is simple: GoComics has implemented a JS barrier that prevents direct downloading of pages!
CLARIFICATION: The JS barrier that prevents the direct downloading of pages is inserted by GoComics only if a request comes from a host that has been flagged as suspicious or from an IP that has been blacklisted. Generally, this means that:
- If you host the PHP version on shared hosting or anywhere in a data center, the web app likely won’t work.
- If you run the Python version locally, from a residential IP, it should still work.
If you visit the website “in person,” you’ll encounter such a page that will eventually set a cookie for you so you don’t see it again:

If you visit the website “in an automated way” (curl, wget, lynx, whatever), the served contents will look like this:
<!DOCTYPE html>
<html>
<head>
<title>Establishing a secure connection ...</title>
<meta name="viewport" content="width=device-width, initial-scale=0.8">
<link href="https://fonts.bunny.net/css?family=Inter:300,400,500,700" rel="stylesheet">
<link href="/.bunny-shield/assets/challenge-styles.css" rel="stylesheet" />
<script src="/.bunny-shield/assets/shield-challenge.js"></script>
</head>
<body data-pow="334f3e1932262548d782cb0920cb434e930d91debdde1a98ed3a1ccea4972225#a7c242841e846b47d87566fa18c77d7a#1774720963#09c11da1995f285ebc8b0d1fe510cd3fcb85942671bb20b14507ff40441bc96a">
<div class="body">
<div class="container">
<div class="left">
<img src="/.bunny-shield/assets/challenge.svg" alt="Challenge Loading" />
</div>
<div class="right">
<h1>Hold tight</h1>
<h2>
<div class="loading"></div>
We are establishing a secure
connection.
</h2>
<p>
This website is using a security service to protect
itself from online attacks. We are checking your browser
to establish a secure connection and keep you safe.
</p>
<p>
<div class="status">...</div>
<div class="error"></div>
<noscript>
<p style="color: #FF0000;">Please enable JavaScript to continue.</p>
</noscript>
</p>
</div>
</div>
</div>
<div class="footer">
Request ID: <strong>5add82c0178b5673a015e9c4e71bdb92</strong>
</div>
</body>
</html>
Bloody bastards. This breaks a lot.
💣 It breaks the newer, web-based Comic Strip Browser for GoComics that I was using as PHP hosted on IONOS. I relied on it to consult the archives!
🚀 What still works is the sibling of the latter, the Comics Kingdom Easy Browser.
🚀 To my surprise, the vibe-coded standalone Comic Strip Browser for GoComics that I wasn’t using anymore STILL WORKS!
I’m so disgusted that I’m not sure if it’s worth trying to find a workaround for the web app.
Maybe it’s time to resuscitate the standalone PyQt6 app. Or to port it to GTK. I just don’t feel like doing it right now.


Strange thing, the Inbox Comics mail for today, March 31, managed to retrieve Garfield from GoComics, with the link pointing to the correct GoComics image.
Everything else that I subscribed to and that was supposed to be retrieved from GoComics is still broken: “…wasn’t updated today.”
The strips from Comics Kingdom are not affected.
I added a note to clarify that the JS barrier used by GoComics to prevent the direct downloading of pages only shows up if a request comes from a host that has been flagged as suspicious or from an IP that has been blacklisted. Therefore, it affects the PHP version that I hosted for my own use on IONOS. If I run the Python version locally, from a residential IP, it still works.