Tiny Tiny RSS: Community

Unable to fetch: HTTP/1.1 304 Not Modified [304]


I’m attempting to debug why an RSS feed, that I’m manually generating locally, silently stopped updating from the TTRSS perspective a few days ago. I’ve manually verified that the feed itself is changing/updating. However, when I run a debug on it, its seemingly reporting that the feed has not been modified (and has a null last modified timestamp?):

$ ./update.php --debug-feed 303
[23:26:36/1429] Lock: update.lock
[23:26:36/1429] start
[23:26:36/1429] local cache will not be used for this feed
[23:26:36/1429] last unconditional update request: 2019-01-14 23:17:22
[23:26:36/1429] stored last modified for conditional request: Mon, 14 Jan 2019 23:16:04 GMT
[23:26:36/1429] fetching [http://example.com/movies.xml] (force_refetch: )...
[23:26:36/1429] fetch done.
[23:26:36/1429] source last modified: 
[23:26:36/1429] unable to fetch: HTTP/1.1 304 Not Modified [304]
[23:26:36/1429] source claims data not modified, nothing to do.

If I manually curl the feed URL, it seems to show a very recent Last-Modified:

< HTTP/1.1 200 OK
< Date: Mon, 14 Jan 2019 23:36:56 GMT
< Server: Apache/2.4.34 (Fedora)
< Last-Modified: Mon, 14 Jan 2019 23:30:04 GMT
< ETag: "7798-57f736cade364"
< Accept-Ranges: bytes
< Content-Length: 30616
< X-Powered-By: a herd of feral llamas
< Connection: close
< Content-Type: application/rss+xml

I’m guessing Last-Modified is not what ttrss uses to determine when its last modified? I think I need a pointer on how to debug this further, and figure out why TTRSS thinks the feed hasn’t been modified.


  1. nothing has changed with http handling in “a few days”
  2. i’m not seeing any versions of what you’re running nor a test feed which shows this problem so i can’t help you

you’re guessing wrong, this header is exactly what is being used (stored last modified is when it has been seen last)

you open the source in the text editor, and then you read it. you also don’t try to guess anything.

e: additionally, tt-rss periodically forces unconditional requests (MAX_CONDITIONAL_INTERVAL) so i’m not sure how and why would feed stop updating because of this for “a few days”.