Date: 2026-09-01
Affected: kleinanzeigen-scraper, kleinanzeigen-free-finds, kleinanzeigen-deal-radar
Duration: ~11 hours from first failed run to fixed build live
On 1 September 2026, Kleinanzeigen.de shipped a frontend redesign that moved
the site to utility CSS classes. Every selector our extractors keyed on -
article.aditem and the aditem-* family - disappeared
at once. Search and category runs on all three Kleinanzeigen actors started
failing loudly (by design: a run that cannot read the page fails rather than
returning empty rows, so nobody silently paid for nothing).
Runs failed for roughly 11 hours. Failed runs deliver no results; per-result billing means failed runs also charge nothing beyond the start event. The failure spike is permanently visible in the actor's public record - that dip in the 30-day success rate is this incident aging out.
Extraction was keyed on class names, which a redesign can vaporise wholesale. Detection relied on a scheduled check that fires best-effort - in practice about every five hours - plus user-visible failures.
Same day: extractors rebuilt to key on stable structure instead of styling -
data-adid/data-href attributes and each ad's
schema.org block, with price, postcode, date and chips recognised by shape
rather than class name. The broken pages were added to the regression corpus,
so this exact break can never return unnoticed.
Since 6 September, a live markup check runs every hour against the real sites for the highest-volume actors: detection is now ~1 hour, not ~5, and does not depend on a user hitting the break first. Every production failure still becomes a permanent regression test.
Questions about this incident? lowlanddata@gmail.com - reports get read the same day.