Subject: bug#79338: 30.1.90; gnus: wront-type-argument error when processing new nnrss group

From: Christopher Howard <[email-masked]>
Date: Fri, 29 Aug 2025 06:29:08 -0800

Hi. I recently added a new RSS feed to gnus, but immediately I am getting the error shown in the backtrace below. I imagine there is something in the feed formatting that nnrss doesn't like or wasn't expecting. This is the RSS feed I added:

https://alaskalinuxuser3.ddns.net/feeds/all.rss.xml

Here is the backtrace:

#+begin_verse
Debugger entered--Lisp error: (wrong-type-argument listp html)
  car(html)
  dom-search(html #f(compiled-function (node) #<bytecode -0x1ce0b1f06f886d54>))
  nnrss-get-namespace-prefix((html ((lang . "en")) (head nil (title nil "Private Site") (meta (...)) (meta (... ...)) (link (... ...)) (link (... ...)) (style (...) "\n\11\11\11html {\n\11\11\11\11height: 100%;\n\11\11\11\11margin-top: 0 !important;\n\11\11\11}\n\11\11\11.body {\n\11\11\11\11font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen-Sans\", \"Ubuntu\", \"Cantarell\", \"Helvetica Neue\", sans-serif;\n\11\11\11\11background: white;\n\11\11\11\11height: 100%;\n\11\11\11}\n\11\11\11.marketing-bar {\n\11\11\11\11display: flex;\n\11\11\11\11justify-content: space-between;\n\11\11\11\11flex-wrap: wrap;\n\11\11\11\11padding: 10px 24px;\n\11\11\11\11position: fixed;\n\11\11\11\11top: 0;\n\11\11\11\11left: 0;\n\11\11\11\11right: 0;\n\11\11\11}\n\11\11\11.inner {\n\11\11\11\11display: flex;\n\11\11\11\11flex-direction: column;\n\11\11\11\11justify-content: center;\n\11\11\11\11align-items: center;\n\11\11\11\11height: 100%;\n\11\11\11}\n\11\11\11.marketing-copy {\n\11\11\11\11display: flex;\n\11\11\11\11align-items: center;\n\11\11\11}\n\11\11\11.logo {\n\11\11\11\11height: 48px;\n\11\11\11\11margin-right: 16px;\n\11\11\11\11width: 48px;\n\11\11\11}\n\11\11\11.copy {\n\11\11\11\11line-height: 1.2;\n\11\11\11\11max-width: 307px;\n\11\11\11\11padding-right: 16px;\n\11\11\11\11font-family: Recoleta, Georgia, \"Times New Roman\", Times, serif;\n\11\11\11}\n\11\11\11.marketing-buttons {\n\11\11\11\11display: flex;\n\11\11\11\11width: 100%;\n\11\11\11}\n\11\11\11.marketing-buttons .button {\n\11\11\11\11background: #101010;\n\11\11\11\11border-radius: 3px;\n\11\11\11\11border: 1px solid #101010;\n\11\11\11\11box-sizing: border-box;\n\11\11\11\11display: block;\n\11\11\11\11font-size: 16px;\n\11\11\11\11font-weight: 700;\n\11\11\11\11line-height: 21px;\n\11\11\11\11padding: 13px;\n\11\11\11\11text-align: center;\n\11\11\11\11text-overflow: ellipsis;\n\11\11\11\11text-decoration: none;\n\11\11\11\11transition: opacity .15s ease-out;\n\11\11\11\11white-space: nowrap;\n\11\11\11\11width: 100%;\n\11\11\11\11margin: 16px 8px;\n\11\11\11}\n\11\11\11.marketing-buttons .button:first-child {\n\11\11\11\11margin-left: 0;\n\11\11\11}\n\11\11\11.marketing-buttons .button:last-child {\n\11\11\11\11margin-right: 0;\n\11\11\11}\n\11\11\11.marketing-buttons .button,\n\11\11\11.marketing-buttons .button:hover,\n\11\11\11.marketing-buttons .button:focus {\n\11\11\11\11background: transparent;\n\11\11\11\11color: #000;\n\11\11\11}\n\11\11\11.marketing-buttons .button-primary,\n\11\11\11.marketing-buttons .button-primary:hover,\n\11\11\11.marketing-buttons .button-primary:focus {\n\11\11\11\11color: #fff;\n\11\11\11\11background-color: #000;\n\11\11\11}\n\11\11\11.marketing-buttons .button:hover,\n\11\11\11.marketing-buttons .button:focus {\n\11\11\11\11opacity: .85;\n\11\11\11}\n\11\11\11.message {\n\11\11\11\11text-align: center;\n\11\11\11\11padding: 0 15px;\n\11\11\11\11max-width: 800px;\n\11\11\11}\n\11\11\11.message p {\n\11\11\11\11color: rgb( 80, 87, 94 );\n\11\11\11\11font-we...") (script (... ...)) (script (...) "\n\11\11/* <![CDATA[ */\n\11\11\11if ( 'function' === typeof WPRemoteLogin ) {\n\11\11\11\11document.cookie = \"wordpress_test_cookie=test; path=/\";\n\11\11\11\11if ( document.cookie.match( /(;|^)\\s*wordpress_test_cookie\\=/ ) ) {\n\11\11\11\11\11WPRemoteLogin();\n\11\11\11\11}\n\11\11\11}\n\11\11/* ]]> */\n\11\11")) (body ((class . "body private-login")) "\n\11\11\11\11\11\11" (div (...) "\n\11\11\11\11\11" (div ... "\n\11\11\11\11\11\11" ... "\n\11\11\11\11\11\11" ... "\n\11\11\11\11\11") "\n\11\11\11\11\11" (div ... "\n\11\11\11\11\11\11" ... "\n\11\11\11\11\11\11" ... "\n\11\11\11\11\11") "\n\11\11\11\11") "\n\11\11\11\11\11\11" (div (...) "\n\11\11\11" (div ... "\n\11\11\11\11" ... "\n\11\11\11\11" ... "\n\11\11\11\11\11\11\11") "\n\11\11") "\n\11\11" (script (... ... ... ... ... ...)))) "http://purl.org/dc/elements/1.1/")
  nnrss-check-group("Alaskan, Adventurer, Tinkerer, Creator." "")
  nnrss-retrieve-groups(("Emacs TV" "Home on shom.dev" "Nutrition Research News -- ScienceDaily" "Medical Xpress - latest medical and health news stories" "The Daily Wire - Breaking News, Videos & Podcasts" "Alaskan, Adventurer, Tinkerer, Creator." "Space & Time News -- ScienceDaily" "The Great SummerEmacs Blog" "xorvoid") "")
  gnus-retrieve-groups(("Emacs TV" "Home on shom.dev" "Nutrition Research News -- ScienceDaily" "Medical Xpress - latest medical and health news stories" "The Daily Wire - Breaking News, Videos & Podcasts" "Alaskan, Adventurer, Tinkerer, Creator." "Space & Time News -- ScienceDaily" "The Great SummerEmacs Blog" "xorvoid") (nnrss ""))
  gnus-read-active-file-2(("Emacs TV" "Home on shom.dev" "Nutrition Research News -- ScienceDaily" "Medical Xpress - latest medical and health news stories" "The Daily Wire - Breaking News, Videos & Podcasts" "Alaskan, Adventurer, Tinkerer, Creator." "Space & Time News -- ScienceDaily" "The Great SummerEmacs Blog" "xorvoid") (nnrss ""))
  gnus-read-active-for-groups((nnrss "") (("nnrss:Emacs TV" 4 ((1 . 3346)) ((unexist) (seen (1 . 3346))) (nnrss "")) ("nnrss:Home on shom.dev" 4 ((1 . 171)) ((unexist) (seen (1 . 171))) (nnrss "")) ("nnrss:Nutrition Research News -- ScienceDaily" 4 ((1 . 293)) ((unexist) (seen (1 . 293))) (nnrss "")) ("nnrss:Medical Xpress - latest medical and health news stories" 4 ((1 . 908)) ((unexist) (seen (1 . 908))) (nnrss "")) ("nnrss:The Daily Wire - Breaking News, Videos & Podcasts" 4 ((1 . 7474)) ((unexist) (seen (1 . 7489)) (download 7084) (cache 6492 7083) (killed (7475 . 7489))) (nnrss "")) ("nnrss:Alaskan, Adventurer, Tinkerer, Creator." 4 ((1 . 5)) ((unexist) (seen (1 . 5))) (nnrss "")) ("nnrss:Space & Time News -- ScienceDaily" 4 ((1 . 449)) ((unexist) (seen (1 . 449))) (nnrss "")) ("nnrss:The Great SummerEmacs Blog" 4 ((1 . 14)) ((unexist) (seen (1 . 14))) (nnrss "")) ("nnrss:xorvoid" 4 ((1 . 34)) ((unexist) (seen (1 . 34))) (nnrss ""))) nil)
  gnus-get-unread-articles(4 nil nil)
  gnus-group-get-new-news(nil)
  funcall-interactively(gnus-group-get-new-news nil)
  call-interactively(gnus-group-get-new-news nil nil)
  command-execute(gnus-group-get-new-news)
#+end_verse

In GNU Emacs 30.1.90 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.43, cairo version 1.18.4) of 2025-06-23 built on theoden
Repository revision: a2bfce5d2a7d046a45c25364f3c69b3d8a776081
Repository branch: emacs-30
Windowing system distributor 'The X.Org Foundation', version 11.0.12401006
System Description: Guix System

Configured using:
 'configure --prefix=/home/christopher/local'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
LCMS2 LIBOTF LIBSELINUX LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY PDUMPER
PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB

Important settings:
  value of $EMACSLOADPATH: /home/christopher/local/share/emacs/30.1.90/lisp
  value of $EMACSNATIVELOADPATH: /home/christopher/.guix-home/profile/lib/emacs/native-site-lisp:/home/christopher/.guix-home/profile/lib/emacs/native-site-lisp:/home/christopher/.guix-home/profile/lib/emacs/native-site-lisp:/home/christopher/.guix-home/profile/lib/emacs/native-site-lisp
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: Debbugs

Minor modes in effect:
  override-global-mode: t
  ready-player-mode: t
  repeat-mode: t
  pdf-occur-global-minor-mode: t
  engine-mode: t
  rcirc-track-minor-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  server-mode: t
  helm-mode: t
  helm-minibuffer-history-mode: t
  winner-mode: t
  minibuffer-depth-indicate-mode: t
  header-line-indent-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  minibuffer-regexp-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/christopher/.emacs.d/elpa/helm-4.0.4/helm-packages hides /home/christopher/.emacs.d/elpa/helm-core-4.0.4/helm-packages
/home/christopher/.emacs.d/elpa/helm-4.0.4/helm-x-icons hides /home/christopher/.emacs.d/elpa/helm-core-4.0.4/helm-x-icons
/home/christopher/.emacs.d/elpa/magit-4.3.6/magit-dired hides /home/christopher/.emacs.d/elpa/magit-section-4.3.6/magit-dired
/home/christopher/.emacs.d/elpa/magit-4.3.6/magit-autorevert hides /home/christopher/.emacs.d/elpa/magit-section-4.3.6/magit-autorevert
/home/christopher/.emacs.d/elpa/transient-0.9.2/transient hides /home/christopher/local/share/emacs/30.1.90/lisp/transient

Features:
(shadow emacsbug verilog-mode pdf-sync pdf-annot pdf-outline pdf-links
pdf-history gnus-dup pcmpl-gnu apropos antlr-mode gnus-bookmark
calc-cplx calc-math calc-funcs magit-extras vc-hg vc-bzr rng-cmpct
rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match
rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap sgml-mode nxml-util
nxml-enc xmltok js c-ts-common cc-mode cc-fonts cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs man gnus-topic
scheme xref org-timer tramp-cmds thai-util thai-word canlock org-attach
helm-external helm-net ielm bug-reference calc-rewr calc-vec calc-rules
calcalg2 calc-incom calc-arith calc-store gnus-kill org-clock calc-undo
pcmpl-unix bbdb-pgp webpaste webpaste-autoloads request
request-autoloads loaddefs-gen lisp-mnt tar-mode arc-mode archive-mode
gnus-fun calc-aent calccomp calc-lang calc-alg calc-ext calc-misc
calc-menu dired-aux cus-start ffap em-xtra em-unix em-tramp em-term term
ehelp em-smart em-script em-prompt em-pred em-ls em-hist em-glob
em-extpipe em-elecslash em-cmpl em-dirs em-basic em-banner em-alias
esh-mode esh-var eshell esh-cmd image-file image-converter gnus-draft
shr-color color dabbrev cal-move tabify org-capture mailalias smtpmail
flow-fill bbdb-message flyspell ispell org-duration view cal-china lunar
solar cal-dst cal-bahai cal-islam cal-hebrew holidays holiday-loaddefs
diary-lib diary-loaddefs cal-iso org-agenda mm-archive utf-7 tramp-cache
tramp-sh shortdoc comp-common help-fns radix-tree cl-print
network-stream qp misearch multi-isearch mule-util sort gnus-cite smiley
mail-extr textsec uni-scripts idna-mapping ucs-normalize uni-confusable
textsec-check gnus-async gnus-bcklg gnus-ml disp-table vc-git
vc-dispatcher face-remap oc-basic org-element org-persist org-id
org-refile org-element-ast inline avl-tree ol-eww eww url-queue ol-rmail
ol-mhe ol-irc ol-info ol-gnus nnselect ol-docview doc-view ol-bibtex
bibtex ol-bbdb ol-w3m ol-doi org-link-doi nndraft nnmh nndoc nnatom
nnfeed nnrss mm-url nnfolder bbdb-gnus bbdb-mua bbdb-com nnagent nnml
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art
mm-uu mml2015 mm-view mml-smime smime dig nntp gnus-cache tramp-archive
tramp-gvfs helm-command helm-elisp helm-eval edebug debug backtrace
helm-info socks gnutls elpher use-package-bind-key bind-key gemini-mode
time-stamp vundo mastodon mastodon-transient tp mastodon-search
mastodon-widget mastodon-tl url-cache mastodon-toot facemenu
mastodon-iso persist mastodon-http math-preview s dash calc
calc-loaddefs calc-macs ready-player repeat transducers
p-search-x-pdfinfo p-search-x-package-list p-search-x-info
p-search-x-filesplit p-search-x-elisp p-search-x-denote
p-search-x-bibtex p-search p-search-query p-search-transient project
heap generator cl debbugs-gnu debbugs soap-client url-http url-auth
url-gw nsm warnings rng-xsd rng-dt rng-util xsd-regexp debbugs-compat
bookmark+ bookmark+-key dired-x bookmark+-1 gnus-sum shr pixel-fill
kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus
xml gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int
gnus-range gnus-win gnus nnheader range bookmark+-bmu org ob ob-tangle
ob-ref ob-lob ob-table ob-exp org-macro org-src sh-script smie treesit
executable ob-comint org-pcomplete org-list org-footnote org-faces
org-entities noutline outline org-version ob-emacs-lisp ob-core ob-eval
org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs
thingatpt cal-menu calendar cal-loaddefs org-compat org-macs
bookmark+-lit bookmark+-mac uniline rect hydra lv pdf-occur ibuf-ext
ibuffer ibuffer-loaddefs tablist advice tablist-filter
semantic/wisent/comp semantic/wisent semantic/wisent/wisent
semantic/util-modes semantic/util semantic semantic/tag semantic/lex
semantic/fw mode-local find-func cedet pdf-isearch let-alist pdf-misc
pdf-tools compile cus-edit wid-edit pdf-view magit-bookmark bookmark
jka-compr pdf-cache pdf-info tq pdf-util pdf-macs engine-mode annotate
rcirc bbdb bbdb-site timezone printing ps-print ps-print-loaddefs lpr
esh-ext esh-proc esh-opt esh-io esh-arg esh-module esh-module-loaddefs
esh-util magit-submodule magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status
magit magit-repos magit-apply magit-wip magit-log which-func imenu
magit-diff smerge-mode diff diff-mode track-changes git-commit log-edit
message sendmail yank-media puny rfc822 mml mml-sec epa derived epg
rfc6068 epg-config gnus-util text-property-search mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log
magit-core magit-autorevert autorevert magit-margin magit-transient
magit-process with-editor magit-mode transient pp benchmark magit-git
magit-base magit-section cursor-sensor crm llama compat server helm-mode
helm-misc helm-files image-dired image-dired-tags image-dired-external
image-dired-util image-mode dired dired-loaddefs exif filenotify tramp
rx trampver tramp-integration files-x tramp-message tramp-compat xdg
shell pcomplete comint ansi-osc parse-time iso8601 time-date
tramp-loaddefs helm-buffers helm-x-icons helm-occur helm-tags
helm-locate helm-grep helm-regexp format-spec ansi-color helm-utils
helm-help helm-types helm helm-global-bindings helm-easymenu edmacro
kmacro helm-core easy-mmode helm-source helm-multi-match helm-lib async
cl-extra help-mode use-package-ensure use-package-core
green-phosphor-theme winner ring mb-depth display-line-numbers cus-load
finder-inf annotate-autoloads bbdb-autoloads dash-autoloads
engine-mode-autoloads helm-autoloads helm-core-autoloads async-autoloads
hydra-autoloads lv-autoloads magit-autoloads pcase
magit-section-autoloads llama-autoloads mastodon-autoloads
pdf-tools-autoloads persist-autoloads tablist-autoloads tp-autoloads
transient-autoloads vundo-autoloads wfnames-autoloads info
with-editor-autoloads package browse-url url url-proxy url-privacy
url-expand url-methods url-history url-cookie generate-lisp-file
url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt
gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl
tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd
touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list
replace newcomment text-mode lisp-mode prog-mode register page tab-bar
menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse
jit-lock font-lock syntax font-core term/tty-colors frame minibuffer
nadvice seq simple cl-generic indonesian philippine cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop
case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind inotify lcms2 dynamic-setting system-font-setting
font-render-setting cairo gtk x-toolkit xinput2 x multi-tty move-toolbar
make-network-process emacs)

Memory information:
((conses 16 7022733 964799) (symbols 48 81038 64)
 (strings 32 502461 107092) (string-bytes 1 76773287)
 (vectors 16 221483) (vector-slots 8 3250810 1243576)
 (floats 8 5452 57310) (intervals 56 580223 14781) (buffers 992 274))

-- 
Christopher Howard
gemini://gem.librehacker.com
https://geminiprotocol.net/

בראשית ברא אלהים את השמים ואת הארץ