Unable to load backend.php status: 500

Describe the problem you’re having:

I’ve updated (pulled from master-branch) and now after login, ttrss stuck at 30% loading, and I get this error in the Browser console

Uncaught (in promise) 
Object { message: "Unable to load backend.php status: 500", stack: "_320@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:82557\n_49b@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:128261\n_4a9@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:128697\nEventListener.handleEvent*_4a2@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:129213\nxhr@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:130552\ndojo/_base/xhr/</dojo.xhr@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:117834\ndojo/_base/xhr/</dojo.xhrPost@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:118271\npost/<@https://rss.example.dev/js/common.js?1659011047:167:9\npost@https://rss.example.dev/js/common.js?1659011047:163:10\njson/<@https://rss.example.dev/js/common.js?1659011047:189:9\njson@https://rss.example.dev/js/common.js?1659011047:188:10\ninit/<@https://rss.example.dev/js/App.js?1659011047:713:14\nsetupNightModeDetection/link.onload@https://rss.example.dev/js/App.js?1659011047:197:8\nEventHandlerNonNull*setupNightModeDetection@https://rss.example.dev/js/App.js?1659011047:195:7\ninit@https://rss.example.dev/js/App.js?1659011047:694:12\n@https://rss.example.dev/js/tt-rss.js?1659011047:62:8\ndojo/ready/</dojo.addOnLoad/_186<@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:37803\n_182@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:37428\nreq.signal/<@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:4033\n_b@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:531\nreq.signal@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:3996\n_38@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:14153\n_81@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:14202\n_f6@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:15985\n_10b@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:18914\nEventListener.handleEvent*_104@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:18235\nreq.injectUrl@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:18933\n_33@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:16925\n_b@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:531\n_7c/<@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:7544\n_38@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:14100\n_7c@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:7530\n_17@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:8197\nreq@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:760\n@https://rss.example.dev/js/tt-rss.js?1659011047:8:8\n", response: {…}, status: 500, responseText: "{\"init-params\":{\"on_catchup_show_next_feed\":0,\"hide_read_feeds\":0,\"enable_feed_cats\":1,\"feeds_sort_by_unread\":0,\"confirm_feed_catchup\":1,\"cdm_auto_catchup\":0,\"fresh_article_max_age\":48,\"hide_read_shows_special\":1,\"combined_display_mode\":1,\"debug_headline_ids\":0,\"cdm_enable_grid\":0,\"safe_mode\":false,\"check_for_updates\":true,\"icons_url\":\"feed-icons\",\"cookie_lifetime\":86400,\"default_view_mode\":\"adaptive\",\"default_view_limit\":30,\"default_view_order_by\":\"default\",\"bw_limit\":0,\"is_default_pw\":false,\"label_base_index\":-1024,\"theme\":\"\",\"plugins\":\"Auth_Internal, Note, Af_Comics, Af_Readability, Af_Youtube_Embed, Auto_Assign_Labels, Cache_Starred_Images, No_Iframes, Toggle_Sidebar\",\"php_platform\":\"Linux\",\"php_version\":\"7.3.31-1~deb10u1\",\"self_url_prefix\":\"https:\\/\\/rss.example.dev\",\"max_feed_id\":152,\"num_feeds\":106,\"hotkeys\":[[\"c\",\"a\",\"f\",\"g\"],{\"k\":\"next_feed\",\"K\":\"next_unread_feed\",\"j\":\"prev_feed\",\"J\":\"prev_unread_feed\",\"n\":\"next_article_noscroll\",\"p\":\"prev_article_noscroll\",\"N\":\"article_page_…", xhr: XMLHttpRequest }
​
message: "Unable to load backend.php status: 500"
​
response: Object { url: "backend.php", transferType: "download", loaded: 11925, … }
​
responseText: "{\"init-params\":{\"on_catchup_show_next_feed\":0,\"hide_read_feeds\":0,\"enable_feed_cats\":1,\"feeds_sort_by_unread\":0,\"confirm_feed_catchup\":1,\"cdm_auto_catchup\":0,\"fresh_article_max_age\":48,\"hide_read_shows_special\":1,\"combined_display_mode\":1,\"debug_headline_ids\":0,\"cdm_enable_grid\":0,\"safe_mode\":false,\"check_for_updates\":true,\"icons_url\":\"feed-icons\",\"cookie_lifetime\":86400,\"default_view_mode\":\"adaptive\",\"default_view_limit\":30,\"default_view_order_by\":\"default\",\"bw_limit\":0,\"is_default_pw\":false,\"label_base_index\":-1024,\"theme\":\"\",\"plugins\":\"Auth_Internal, Note, Af_Comics, Af_Readability, Af_Youtube_Embed, Auto_Assign_Labels, Cache_Starred_Images, No_Iframes, Toggle_Sidebar\",\"php_platform\":\"Linux\",\"php_version\":\"7.3.31-1~deb10u1\",\"self_url_prefix\":\"https:\\/\\/rss.example.dev\",\"max_feed_id\":152,\"num_feeds\":106,\"hotkeys\":[[\"c\",\"a\",\"f\",\"g\"],{\"k\":\"next_feed\",\"K\":\"next_unread_feed\",\"j\":\"prev_feed\",\"J\":\"prev_unread_feed\",\"n\":\"next_article_noscroll\",\"p\":\"prev_article_noscroll\",\"N\":\"article_page_…"
​
stack: "_320@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:82557\n_49b@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:128261\n_4a9@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:128697\nEventListener.handleEvent*_4a2@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:129213\nxhr@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:130552\ndojo/_base/xhr/</dojo.xhr@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:117834\ndojo/_base/xhr/</dojo.xhrPost@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:118271\npost/<@https://rss.example.dev/js/common.js?1659011047:167:9\npost@https://rss.example.dev/js/common.js?1659011047:163:10\njson/<@https://rss.example.dev/js/common.js?1659011047:189:9\njson@https://rss.example.dev/js/common.js?1659011047:188:10\ninit/<@https://rss.example.dev/js/App.js?1659011047:713:14\nsetupNightModeDetection/link.onload@https://rss.example.dev/js/App.js?1659011047:197:8\nEventHandlerNonNull*setupNightModeDetection@https://rss.example.dev/js/App.js?1659011047:195:7\ninit@https://rss.example.dev/js/App.js?1659011047:694:12\n@https://rss.example.dev/js/tt-rss.js?1659011047:62:8\ndojo/ready/</dojo.addOnLoad/_186<@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:37803\n_182@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:37428\nreq.signal/<@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:4033\n_b@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:531\nreq.signal@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:3996\n_38@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:14153\n_81@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:14202\n_f6@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:15985\n_10b@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:18914\nEventListener.handleEvent*_104@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:18235\nreq.injectUrl@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:18933\n_33@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:16925\n_b@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:531\n_7c/<@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:7544\n_38@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:14100\n_7c@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:7530\n_17@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:8197\nreq@https://rss.example.dev/lib/dojo/dojo.js?1659011047:8:760\n@https://rss.example.dev/js/tt-rss.js?1659011047:8:8\n"
​
status: 501
​
xhr: XMLHttpRequest { readyState: 4, timeout: 0, withCredentials: false, … }
​
<prototype>: Object { name: "RequestError", constructor: _320(_321), stack: "" }

tt-rss version (including git commit id):

master, cbf7101

Platform (i.e. Linux distro, PHP, PostgreSQL, etc) versions:

Debian 11, PHP 7.3, PostgreSQL 9.2, lighttpd

Please provide any additional information below:

Tried in different browsers, incl. clearing browser cache.

I assume file permissions are fine since user running is www-data

/var/www/rss# ls -l | grep back
-rw-r--r--  1 www-data www-data  4781 Jul 28 14:24 backend.php

next time pay more attention to this forum before updating to master blindly.

e: properly check for baseline required PHP version (7.4) · 4aefbd628e - tt-rss - Tiny Tiny RSS

I notice that the docker-compose repo updates master blindly on every restart ttrss-docker-compose/startup.sh at 679792df76f2acad3bb1acaef4cbea5b2b05a515 - ttrss-docker-compose - Tiny Tiny RSS

If we feel like that’s not good practice should we start having stable version tags instead, and have the script pull the latest stable rather than master?

compose setup runs in a controlled environment.

we have tagged, revertable docker hub images, built by CI pipelines.

now, fuck off of my forum and go be willfully ignorant somewhere else.