internal.py's flat-match path fed the raw scraper payload into
flat_matches_filter, which has no "district" key. Combined with the
match rule "active districts filter + unknown district → reject",
this meant any user with a non-empty districts filter stopped
receiving match notifications as soon as the 0011 migration ran.
Extract the Bezirk once from payload.address before the per-user
loop, so all users' filter evaluations see a concrete district.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>