Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Broken RSS after 0.49.5 (or greater) update #3053

Closed
50LUD4 opened this issue Mar 24, 2025 · 40 comments
Closed

Broken RSS after 0.49.5 (or greater) update #3053

50LUD4 opened this issue Mar 24, 2025 · 40 comments
Assignees
Labels

Comments

@50LUD4
Copy link

50LUD4 commented Mar 24, 2025

On two different self-hosted instances, RSS it broken after 0.49.5 (or greater) update.

FreshRss Rss reader says:

1st instance: "the status code is 200 and content-type is text/html; charset=utf-8 "
2nd instance: "is invalid XML, likely due to invalid characters. XML error: Attribute without value at line xx, column xx"

Image

@dgtlmoon
Copy link
Owner

I cant reproduce this, even the RSS validator says its all OK

Image

can you zip and attach the RSS XML atleast?

@dgtlmoon
Copy link
Owner

using feedparser with the output also works, so its something with the content that you're watching, and ofcourse, as the issue template says, you MUST include the URLs you're watching to be able to reproduce this otherwise its impossible to help

@SansGuidon
Copy link

SansGuidon commented Mar 25, 2025

I came here as well after my miniflux reader reports tens of issues with all changedetection feeds I had configured for a long time, which I could fix by updating all feed URLs to add a / that was not required until then. it seems the only diff is with the url for RSS.
My previous working Feed urls were like https://changedetection.mydomain.com/rss?tag=...
Now a / seems required after /rss. Is it just me or a breaking change?

@dgtlmoon
Copy link
Owner

yeah strange, it's redirecting to rss/, and I wonder if your RSS reader is not supporting that

 curl -vvv "http://127.0.0.1:5000/rss?token=34656a958f6d4ccc5fe8e84030a57394"
*   Trying 127.0.0.1:5000...
* Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0)
> GET /rss?token=34656a958f6d4ccc5fe8e84030a57394 HTTP/1.1
> Host: 127.0.0.1:5000
> User-Agent: curl/7.81.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 308 PERMANENT REDIRECT
< Content-Type: text/html; charset=utf-8
< Content-Length: 317
< Location: http://127.0.0.1:5000/rss/?token=34656a958f6d4ccc5fe8e84030a57394
< Access-Control-Allow-Origin: *
< Vary: Accept-Encoding
< Date: Tue, 25 Mar 2025 07:55:45 GMT
< 
<!doctype html>
<html lang=en>
<title>Redirecting...</title>
<h1>Redirecting...</h1>
<p>You should be redirected automatically to the target URL: <a href="http://127.0.0.1:5000/rss/?token=34656a958f6d4ccc5fe8e84030a57394">http://127.0.0.1:5000/rss/?token=34656a958f6d4ccc5fe8e84030a57394</a>. If not, click the link.
* Connection #0 to host 127.0.0.1 left intact

@x0tester0x
Copy link

x0tester0x commented Mar 25, 2025

Image

Image

The diff page is also only working when im logged in and it does not change if i tick the checkbox

@dgtlmoon
Copy link
Owner

@x0tester0x what has this todo with the RSS?

@x0tester0x
Copy link

@dgtlmoon I open the link to the diff page from the RSS feed...

@dgtlmoon
Copy link
Owner

so the rss feed works then...

?

@x0tester0x
Copy link

Yes for me in miniflux yes, but i have also in the feed url the extra /... but this does not work:

Image

Image

The diff page is also only working when im logged in and it does not change if i tick the checkbox

@SansGuidon
Copy link

yeah strange, it's redirecting to rss/, and I wonder if your RSS reader is not supporting that

 curl -vvv "http://127.0.0.1:5000/rss?token=34656a958f6d4ccc5fe8e84030a57394"
*   Trying 127.0.0.1:5000...
* Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0)
> GET /rss?token=34656a958f6d4ccc5fe8e84030a57394 HTTP/1.1
> Host: 127.0.0.1:5000
> User-Agent: curl/7.81.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 308 PERMANENT REDIRECT
< Content-Type: text/html; charset=utf-8
< Content-Length: 317
< Location: http://127.0.0.1:5000/rss/?token=34656a958f6d4ccc5fe8e84030a57394
< Access-Control-Allow-Origin: *
< Vary: Accept-Encoding
< Date: Tue, 25 Mar 2025 07:55:45 GMT
< 
<!doctype html>
<html lang=en>
<title>Redirecting...</title>
<h1>Redirecting...</h1>
<p>You should be redirected automatically to the target URL: <a href="http://127.0.0.1:5000/rss/?token=34656a958f6d4ccc5fe8e84030a57394">http://127.0.0.1:5000/rss/?token=34656a958f6d4ccc5fe8e84030a57394</a>. If not, click the link.
* Connection #0 to host 127.0.0.1 left intact

Hi,
even if curl can follow along, it seems the W3C Feed validation service disagrees with any former way to render the feed:
https://validator.w3.org/feed/check.cgi will reject my rss? URLs while accepting the /rss/? URLs. Something malformed?

W3C returns: It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate. so it means it's unable to follow the redirect as well, but then I consider that if Miniflux adheres to the same behavior as W3C, probably a lot of other RSS readers as well. Can't blame them for not going further than such a legit RSS validation service.

Now, even with the new URLs that contain /rss/?, I get a warning: This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.:

column 394: Missing atom:link with rel="self"

So I'm curious what you have on your side fro this validation service with old and new URLs.

@dgtlmoon
Copy link
Owner

So I'm curious what you have on your side fro this validation service with old and new URLs.

Since no one here has bothered to give me any actual URLs they are following, I cannot verify any further information despite the fact that i've asked you all to give some actual URLs and its even in the issue template that you need todo so

And yet i'm demanded "tell me what you changed! i want an explaination! " this is massively unproductive

I'm very sure the only change here is that the URL ended in / and your feed reader cant deal with that

heres the fix

https://github.com/dgtlmoon/changedetection.io/pull/3054/files#diff-3f4ecb25e5ef3066c5b73d3ebe3f5edadaf02a614fbc9a8f5fdcf0e71b894325L17

@dgtlmoon
Copy link
Owner

Since the initial report doesnt even include the RSS output!!!!! I mean guys come on, how am i meant to solve this and be "summoned" by your questions? its so unfair

dgtlmoon added a commit that referenced this issue Mar 25, 2025
@dgtlmoon
Copy link
Owner

@x0tester0x thank you so much, i found that bug (also added a test)

@SansGuidon
Copy link

SansGuidon commented Mar 25, 2025

So I'm curious what you have on your side fro this validation service with old and new URLs.

Since no one here has bothered to give me any actual URLs they are following, I cannot verify any further information despite the fact that i've asked you all to give some actual URLs and its even in the issue template that you need todo so

And yet i'm demanded "tell me what you changed! i want an explaination! " this is massively unproductive

I'm very sure the only change here is that the URL ended in / and your feed reader cant deal with that

heres the fix

https://github.com/dgtlmoon/changedetection.io/pull/3054/files#diff-3f4ecb25e5ef3066c5b73d3ebe3f5edadaf02a614fbc9a8f5fdcf0e71b894325L17

I would dare to share but that would mean I share my instance URL (which I want to keep private) and my token (which could give privileges to everyone for accessing my private data), right?

The fact W3C validation service also doesn't recognize such URLs neither make me feel that the RSS readers could be right to claim the problem is not on their side, yet I'm happy to open a ticket on Miniflux and other RSS readers at need (RSS-Bridge also fails on the new URLs).

@dgtlmoon
Copy link
Owner

The fact W3C validation service also doesn't recognize such URLs neither make me feel that the RSS readers could be right to claim the problem is not on their side.

Since you seem to know the answer, I'm happy to get a PR from you to fix it

@dgtlmoon
Copy link
Owner

Let me repeat


I'm very sure the only change here is that the URL ended in / and your feed reader cant deal with that

heres the fix

https://github.com/dgtlmoon/changedetection.io/pull/3054/files#diff-3f4ecb25e5ef3066c5b73d3ebe3f5edadaf02a614fbc9a8f5fdcf0e71b894325L17

@SansGuidon
Copy link

SansGuidon commented Mar 25, 2025

The fact W3C validation service also doesn't recognize such URLs neither make me feel that the RSS readers could be right to claim the problem is not on their side.

Since you seem to know the answer, I'm happy to get a PR from you to fix it

Thanks for the proposal!
it's really more annoying than blocking as I could update tens of URLs on my Miniflux to the new format proposed by Changedetection and that fixes the problem and, as I did, people can use the new URLs from their Changedetection watchlist and update it in their RSS reader. As long as people can find this issue and guess the answer, I'd say it's already something good for anyone facing the same problem.
I'm not sure I can find lot of bandwidth now to test and fix this issue even if I really want, but I'll keep an eye on this idea.

@SansGuidon
Copy link

Let me repeat

I'm very sure the only change here is that the URL ended in / and your feed reader cant deal with that

heres the fix

https://github.com/dgtlmoon/changedetection.io/pull/3054/files#diff-3f4ecb25e5ef3066c5b73d3ebe3f5edadaf02a614fbc9a8f5fdcf0e71b894325L17

I'll send you an example URL in PM (email).

@50LUD4
Copy link
Author

50LUD4 commented Mar 25, 2025

Hi everyone, I can only reply now but I see that the conversation has continued.

@dgtlmoon I could not include RSS output, but if seems that feeds had some broken character inside. If it can help, I had this problem only with feeds with cookie bot popup. I deactivated all of them and solved.

For instance, I had that problem with FreshRss reader that is little bit more "sensitive" to those kind of issues, but eg. with Thunderbird Rss reader everything worked fine.

Take a look of this one:

Image

This [#IABV_TITLE#] seems to broke RSS from from my side.

@dgtlmoon
Copy link
Owner

FreshRss hmm i will try it

@dgtlmoon
Copy link
Owner

third time... fourth time?

I need to see actual rss feed information

I cannot help without seeing actual RSS information

@dgtlmoon
Copy link
Owner

please try 0.49.8

@dgtlmoon dgtlmoon reopened this Mar 25, 2025
@dgtlmoon
Copy link
Owner

I'll assume fixed

@dgtlmoon
Copy link
Owner

and another thing, no one gave any log output from their CDIO, so i dont even know if you guys were hitting some obscure error inside of cdio

this really is such a badly reported issue

@SansGuidon
Copy link

SansGuidon commented Mar 26, 2025

and another thing, no one gave any log output from their CDIO, so i dont even know if you guys were hitting some obscure error inside of cdio

this really is such a badly reported issue

Hey, I agree with you on the lack of proper log report for some of the issues mentioned here. Now in my case the problem was not changedetection unable to do some of its core tasks and there was nothing like an error in the log except if I try bad URLs like the ones this change has turned into deprecated URLs.
The problem was rather a change in URLs that break compatibility with RSS readers. No CDIO logs would have made a difference.
For the other bug reported in this thread, maybe that could have helped.
BTW I hope you got my email.

@dgtlmoon
Copy link
Owner

@SansGuidon once again, please try 0.49.8

did it solve your problem?

@SansGuidon
Copy link

@dgtlmoon I don't know yet, I use Changedetection as packaged by Cloudron and the update is not available yet to me but it should be soon (today hopefully).

@dgtlmoon
Copy link
Owner

I'll drop a newer version soon, it has a couple of extra features for RSS people

@x0tester0x
Copy link

I'll assume fixed

I tried the new Verison and it works I can see again the diff page.

@SansGuidon
Copy link

@SansGuidon once again, please try 0.49.8

did it solve your problem?

@dgtlmoon I confirm the change fixes the URLs, so I'm removing the / from the feeds URLs in my RSS reader then I'll be good :-)

@dgtlmoon
Copy link
Owner

So the problem wasnt broken RSS, the problem was the RSS feeder not following the redirect.. as i said it was likely the problem then

i think

@dgtlmoon
Copy link
Owner

OR the RSS reader started reading a 404 page like /rss/ or something and thinking it was RSS, but as no one really gave me enough information i couldnt see the actual RSS "output"

@SansGuidon
Copy link

SansGuidon commented Mar 26, 2025

OR the RSS reader started reading a 404 page like /rss/ or something and thinking it was RSS, but as no one really gave me enough information i couldnt see the actual RSS "output"

I've emailed you a RSS link with at least 6 RSS Validation services (including W3C) that failed on the RSS link provided by CDIO which confirm the generated RSS was invalid. So now we can of course blame it on W3C and RSS Bridge and Miniflux and other so they change their way of doing and adapt to CDIO, or we can assume the problem was with CDIO.

@dgtlmoon
Copy link
Owner

dgtlmoon commented Mar 27, 2025

@SansGuidon "which confirm the generated RSS was invalid." except no one has yet shown me what the RSS reader is "seeing" exactly, the reader could be looking at the login page for all i know

And what about the original poster? @50LUD4 does the latest version work for you? hello?

@SansGuidon
Copy link

SansGuidon commented Mar 27, 2025

@SansGuidon "which confirm the generated RSS was invalid." except no one has yet shown me what the RSS reader is "seeing" exactly, the reader could be looking at the login page for all i know

I’m concerned about the repeated tone of rant and emphasis on RSS reader responsibility. While some readers might interpret things differently, many validation tools maintainers could not want to adapt just for compatibility with CDIO urls. I’m happy to help troubleshoot this. I'll set up a version v49.7 instance of CDIO alongside my current setup for us to work on a solution together. I'll keep you posted but I might need to dig deeper in some of those RSS readers before I ping back. Wish me luck.

@SansGuidon
Copy link

SansGuidon commented Mar 27, 2025

So I've just create an instance of CDIO with the default watches on v49.7 and started with Miniflux and RSS-Bridge to debug mode.

TLDR

CDIO is 302 redirecting rss readers to the login. A feed aggregator wants raw XML—not an auth page. I hope those 90 min debugging won't be wasted ⏲.

Test 1 : Miniflux

Error and logs (⚠ Redacted) of Miniflux when trying to subscribe some RSS feed with /rss?token= pattern:

User facing error message:

Unable to detect feed using RSS-Bridge: RSS-Bridge: unexpected status code 401.

App Logs

Mar 27 11:09:32 level=DEBUG msg="Making outgoing request" request.method=GET request.url="https://cdio.domain.com/rss?token=<REDACTED>" request.headers="map[Accept:[application/xml, application/atom+xml, application/rss+xml, application/rdf+xml, application/feed+json, text/html, */*;q=0.9] Accept-Encoding:[br, gzip] Connection:[close] User-Agent:[Mozilla/5.0 (compatible; Miniflux/2.2.6; +https://miniflux.app)]]" request.without_redirects=false request.with_proxy=false request.proxy_url="" request.ignore_tls_errors=false request.disable_http2=false
Mar 27 11:09:32 level=DEBUG msg="Request response" effective_url="https://cdio.domain.com/login?next=/" content_length=4638 content_encoding=br content_type="text/html; charset=utf-8"
Mar 27 11:09:32 level=DEBUG msg="Try to detect feeds from YouTube channel page" website_url="https://cdio.domain.com/rss?token=<REDACTED>"
Mar 27 11:09:32 level=DEBUG msg="This website is not a YouTube page, the regex doesn't match" website_url="https://cdio.domain.com/rss?token=<REDACTED>"
Mar 27 11:09:32 level=DEBUG msg="Try to detect feeds from YouTube playlist page" website_url="https://cdio.domain.com/rss?token=<REDACTED>"
Mar 27 11:09:32 level=DEBUG msg="This website is not a YouTube page, the regex doesn't match" website_url="https://cdio.domain.com/rss?token=<REDACTED>"
Mar 27 11:09:32 level=DEBUG msg="Try to detect feeds from HTML meta tags" website_url="https://cdio.domain.com/rss?token=<REDACTED>" content_type="text/html; charset=utf-8"
Mar 27 11:09:32 level=DEBUG msg="Try to detect feeds with RSS-Bridge" website_url="https://cdio.domain.com/rss?token=<REDACTED>"
Mar 27 11:09:32 level=DEBUG msg="Trying to detect feeds using RSS-Bridge" website_url="https://cdio.domain.com/rss?token=<REDACTED>" rssbridge_url=https://rssbridge.domain.com
Mar 27 11:09:32 level=DEBUG msg="Detecting RSS bridges" url="https://rssbridge.domain.com?action=findfeed&format=atom&url=https%3A%2F%2Fcdio.domain.com%2Frss%3Ftoken%3D<REDACTED>"
Mar 27 11:09:32 level=DEBUG msg="Incoming request" client_ip=<REDACTED> request.method=POST request.uri=/subscribe request.protocol=HTTP/1.1 request.execution_time=131.681005ms
Mar 27 11:09:32 level=DEBUG msg="User session found" url=/manifest.json user_id=1 user_session_id=43

And as we see, Miniflux has attempted to use RSS-bridge to resolve the RSS feed, so I'm adding also the RSS-Bridge log for that attempt:

RSS-Bridge log

Mar 27 11:15:44 172.18.17.158 - - [27/Mar/2025:10:15:44 +0000] "GET /?action=findfeed&format=atom&url=https%3A%2F%2Fcdio.domain.com%2Frss%3Ftoken%3D<REDACTED> HTTP/1.1" 401 703 "-" "Go-http-client/2.0"

Test 2: RSS-Bridge

User facing error message:

Bridge returned error 0! (20174)
2025-03-27 10:08:01
Details
Type: Exception
Code: 0
Message: Failed to parse xml from https://cdio.domain.com/rss?tag=cf810e1d-1b9a-4db7-a78d-80f2cef8a35d&token=<REDACTED>: Exception: Unable to parse xml: Specification mandates value for attribute defer in lib/FeedParser.php line 26
File: lib/FeedExpander.php
Line: 38
Trace
#0 index.php(68): RssBridge->main()
#1 lib/RssBridge.php(39): RssBridge->{closure}()
#2 lib/RssBridge.php(37): CacheMiddleware->__invoke()
#3 middlewares/CacheMiddleware.php(44): RssBridge->{closure}()
#4 lib/RssBridge.php(37): ExceptionMiddleware->__invoke()
#5 middlewares/ExceptionMiddleware.php(17): RssBridge->{closure}()
#6 lib/RssBridge.php(37): SecurityMiddleware->__invoke()
#7 middlewares/SecurityMiddleware.php(19): RssBridge->{closure}()
#8 lib/RssBridge.php(37): MaintenanceMiddleware->__invoke()
#9 middlewares/MaintenanceMiddleware.php(10): RssBridge->{closure}()
#10 lib/RssBridge.php(37): BasicAuthMiddleware->__invoke()
#11 middlewares/BasicAuthMiddleware.php(36): RssBridge->{closure}()
#12 lib/RssBridge.php(37): TokenAuthenticationMiddleware->__invoke()
#13 middlewares/TokenAuthenticationMiddleware.php(10): RssBridge->{closure}()
#14 lib/RssBridge.php(34): DisplayAction->__invoke()
#15 actions/DisplayAction.php(54): DisplayAction->createResponse()
#16 actions/DisplayAction.php(89): FilterBridge->collectData()
#17 bridges/FilterBridge.php(88): FeedExpander->collectExpandableDatas()
#18 lib/FeedExpander.php(38)

Context
Query: action=display&bridge=FilterBridge&url=https://cdio.domain.com/rss?tag=cf810e1d-1b9a-4db7-a78d-80f2cef8a35d&token=<REDACTED>&name=&filter=&filter_type=permit&target_title=on&length_limit=-1&format=Html
Version: 2025-01-26
OS: Linux
PHP: 8.3.6

App Logs

Mar 27 11:22:51 <REDACTED> - admin [27/Mar/2025:10:22:51 +0000] "GET /?action=display&bridge=FilterBridge&url=https%3A%2F%2Fcdio.domain.com%2Frss%3Ftag%3Dcf810e1d-1b9a-4db7-a78d-80f2cef8a35d%26token%3D<REDACTED>&name=&filter=&filter_type=permit&target_title=on&length_limit=-1&format=Html HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36"

Ok we don't learn much here.
I've installed TinyTiny RSS for testing... so...

Test 3 : TinyTiny RSS

User facing error message

LibXML error 41 at line 27 (column 43): Specification mandates value for attribute defer

User facing error in debug mode (f D)

10:34:09/33 start
10:34:09/33 running HOOK_FETCH_FEED handlers...
10:34:09/33 feed data has not been modified by a plugin.
10:34:09/33 local cache will not be used for this feed
10:34:09/33 last unconditional update request: 
10:34:09/33 maximum allowed interval for conditional requests exceeded, forcing refetch
10:34:09/33 fetching https://cdio.domain.com/rss?tag=cf810e1d-1b9a-4db7-a78d-80f2cef8a35d&token=<REDACTED> (force_refetch: 1)...
10:34:09/33 [UrlHelper] fetching: https://cdio.domain.com/rss?tag=cf810e1d-1b9a-4db7-a78d-80f2cef8a35d&token=<REDACTED>
10:34:09/33 fetch done.
10:34:09/33 effective URL (after redirects): https://cdio.domain.com/login?next=/ (IP: <REDACTED>) 
10:34:09/33 server last modified: 
10:34:09/33 saving to local cache: 17f69540377ce284fb91d226a64bfd5e57a6f86a.xml
10:34:09/33 running HOOK_FEED_FETCHED handlers...
10:34:09/33 feed data has not been modified by a plugin.
10:34:09/33 fetch error: LibXML error 41 at line 27 (column 43): Specification mandates value for attribute defer
10:34:09/33 + LibXML error 41 at line 27 (column 43): Specification mandates value for attribute defer
10:34:09/33 + LibXML error 76 at line 28 (column 10): Opening and ending tag mismatch: meta line 22 and head
10:34:09/33 + LibXML error 76 at line 109 (column 25): Opening and ending tag mismatch: img line 107 and a
10:34:09/33 + LibXML error 76 at line 110 (column 21): Opening and ending tag mismatch: a line 104 and p
10:34:09/33 + LibXML error 76 at line 142 (column 21): Opening and ending tag mismatch: br line 141 and p
10:34:09/33 + LibXML error 76 at line 146 (column 19): Opening and ending tag mismatch: p line 140 and div
10:34:09/33 + LibXML error 76 at line 147 (column 15): Opening and ending tag mismatch: p line 118 and div
10:34:09/33 + LibXML error 41 at line 165 (column 44): Specification mandates value for attribute autofocus
10:34:09/33 + LibXML error 76 at line 167 (column 19): Opening and ending tag mismatch: input line 166 and div
10:34:09/33 + LibXML error 76 at line 171 (column 20): Opening and ending tag mismatch: div line 162 and fieldset
10:34:09/33 + LibXML error 76 at line 172 (column 12): Opening and ending tag mismatch: fieldset line 161 and form
10:34:09/33 + LibXML error 76 at line 173 (column 9): Opening and ending tag mismatch: input line 160 and div
10:34:09/33 + LibXML error 76 at line 174 (column 8): Opening and ending tag mismatch: form line 159 and div
10:34:09/33 + LibXML error 76 at line 177 (column 15): Opening and ending tag mismatch: div line 158 and section
10:34:09/33 + LibXML error 41 at line 178 (column 51): Specification mandates value for attribute defer
10:34:09/33 + LibXML error 76 at line 179 (column 10): Opening and ending tag mismatch: div line 157 and body
10:34:09/33 + LibXML error 76 at line 181 (column 8): Opening and ending tag mismatch: p line 103 and html
10:34:09/33 + LibXML error 77 at line 181 (column 8): Premature end of data in tag div line 101

We notice the redirection to the login page.

At this point, I'm yet to try another RSS reader, FreshRSS this time.

Test 4: FreshRSS

user error message

A feed could not be found at `https://cdio.domain.com/rss?tag=cf810e1d-1b9a-4db7-a78d-80f2cef8a35d&token=<REDACTED>`; the status code is `200` and content-type is `text/html; charset=utf-8` [https://cdio.domain.com/rss?tag=cf810e1d-1b9a-4db7-a78d-80f2cef8a35d&amp;token=<REDACTED>]

App error log

Mar 27 11:49:46 [Thu Mar 27 10:49:46.339112 2025] [php:notice] [pid 79] [client 172.18.0.1:58244] PHP Notice: A feed could not be found at `https://cdio.domain.com/rss?tag=cf810e1d-1b9a-4db7-a78d-80f2cef8a35d&token=<REDACTED>`; the status code is `200` and content-type is `text/html; charset=utf-8` in /app/code/lib/simplepie/simplepie/src/SimplePie.php on line 2172

FreshRSS complains about the feed and points me to the W3C Feed validation service which says the feed is invalid as well: It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Image

Other RSS validation services

On /rss? URLs with v0.49.7

There has been error with your RSS Feed xml
Undefined root element: html
Line: 2, Column: 0
XML parsing error: :27:42: not well-formed (invalid token)
Line: 27, Column: 42

On /rss/? URLs with v0.49.7:

Even when given the expected /rss/? URL, W3C (and others like https://ralfvanveen.com/fr/tools/verificateur-de-flux-rss/) will say it's valid but recommends improvements for better interoperability, worth improving I guess.

Image

Invalid HTML
Line: 2, Column: 0
Missing atom:link with rel="self"
Line: 5, Column: 168

What you were mentioned earlier is probably right: All these tools are hitting a login screen instead of seeing an RSS feed, so they choke on the HTML rather than parsing valid XML. The 302 redirect to /login means you’re forcing authentication where the reader expects unprotected RSS. That’s why feed validators complain it’s “not a feed” and fail to parse.

@dgtlmoon
Copy link
Owner

What you were mentioned earlier is probably right: All these tools are hitting a login screen instead of seeing an RSS feed, so they choke on the HTML rather than parsing valid XML. The 302 redirect to /login means you’re forcing authentication where the reader expects unprotected RSS. That’s why feed validators complain it’s “not a feed” and fail to parse.

Correct, please try 0.49.9

The code for generating the actual RSS feed has not changed (other than adding a filter to catch anything really extreme that breaks the UTF-8 handling).

so 0.49.9 works for you?

@SansGuidon
Copy link

SansGuidon commented Mar 27, 2025

so 0.49.9 works for you?

thanks for the info! as soon as it's made available to my Cloudron instance (I guess Cloudron team has to fix this renovate-bot pipeline first https://git.cloudron.io/packages/changedetection-app/-/pipelines/14010), I'll come back to you.

@SansGuidon
Copy link

SansGuidon commented Mar 28, 2025

What you were mentioned earlier is probably right: All these tools are hitting a login screen instead of seeing an RSS feed, so they choke on the HTML rather than parsing valid XML. The 302 redirect to /login means you’re forcing authentication where the reader expects unprotected RSS. That’s why feed validators complain it’s “not a feed” and fail to parse.

Correct, please try 0.49.9

The code for generating the actual RSS feed has not changed (other than adding a filter to catch anything really extreme that breaks the UTF-8 handling).

so 0.49.9 works for you?

My CDIO instance was updated yesterday. It still works as before yes afaik. Anything specific I should test beyond the RSS feeds? /rss? URLs work well, and the /rss/ throw access denied. I believe it works as intended.

@50LUD4
Copy link
Author

50LUD4 commented Mar 28, 2025

And what about the original poster? @50LUD4 does the latest version work for you? hello?

@dgtlmoon from my side everything works again.

Thanks a lot for your efforts. Sorry for incomplete bug report, next time I will provide more detailed and technical informations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants