Skip to content

2026-10-02

iCloud and Proton mailboxes are not relays, LEIs meet their Companies House record, and honest location and freshness grades

Ordinary iCloud Mail and Proton Mail addresses no longer answer is_relay true, and Sign in with Apple private relay addresses now do. A LEI is now compared with its Companies House record. location_confidence answers low for anycast, mobile-carrier and satellite addresses. /status calls a dataset current only when its latest scheduled update landed. Plus fixes for over-long addresses, accented addresses on the suppression list, Flemish place names and long key names.

  • iCloud Mail and Proton Mail addresses are mailboxes, not relays. Every address at icloud.com, me.com, mac.com, proton.me, protonmail.com, protonmail.ch and pm.me used to answer is_relay true with a relay_service, domain_category relay and the 5-point relay weight. A sending policy that blocks relays blocked them too. They now answer like any free mailbox provider: is_relay false, relay_service null, domain_category webmail. iCloud+ Hide My Email aliases do live on icloud.com, but nothing in the domain separates them from a real iCloud mailbox, so none is flagged. Proton Pass aliases have their own domains and still answer as relays. Lookups already logged were relabelled, so the email statistics do not count these addresses as relays.
  • Sign in with Apple private relay addresses are flagged. An address at privaterelay.appleid.com answers is_relay true with relay_service "Sign in with Apple private relay". Such an address only accepts mail from the sender domains the app registered with Apple.
  • A LEI is now compared with its Companies House record. The register key that links a LEI to its UK company number was stored cut short, so no LEI was ever matched with its Companies House record. LEI answers had no agreements, named only the GLEIF source, and could never raise name_differs_across_registers or status_differs_across_registers. A LEI with a Companies House cross-reference now answers with both records, the agreements between them and either flag where they differ. The same fault had cut long Companies House company categories and very long GLEIF legal names. The categories that can be rebuilt were restored at once; the rest are stored whole from the next weekly register update.
  • location_confidence answers low for anycast, mobile-carrier and satellite addresses. An anycast address is served from many places at once, and a mobile or satellite network declares the location of its gateway or ground station, not the user's. Such an address used to be graded high when its operator declared the location, or by its country's measured agreement. It now answers low whenever is_anycast, is_mobile or is_satellite is true, whatever the location source. Operator-declared locations for other networks are still graded high. The consistency check withholds the IP-to-address distance for these addresses, as it does for any location not graded high.
  • /status calls a dataset current only when its latest scheduled update landed. Each dataset's freshness window now follows its own schedule plus two days' grace, so one missed run shows as stale within days instead of weeks. The lists curated by hand get a review window and are no longer shown as unchecked: the sanctions and FATF lists, the satellite and mobile network lists, and the address formats and rules. The FATF window counts from the plenary the lists reflect. The North Rhine-Westphalia address register is now dated by its publisher's release, not by the day it was synced.
  • An address longer than mail can be sent to answers invalid_syntax. The limit is 254 octets with the domain converted to punycode, the longest path RFC 5321 allows. An internationalized domain grows when it is converted, so a 129-character address could be 315 octets long; such an address used to be answered and billed, and its history row could then fail with an error. It is now invalid_syntax and free, and an address of exactly 254 octets is still checked.
  • The email suppression list compares addresses exactly. josé@ and jose@ are different mailboxes, but the list used to treat them as one entry: importing the second spelling was skipped, and removing one could remove the other. They are now two entries. A batch of delivery reports is also recorded all or nothing, so a provider's webhook retry no longer stores part of a batch twice.
  • Flemish place lists are no longer cut. Some Flemish postcodes name a list of sub-municipalities up to 162 characters long, which the addresses-at-a-postcode answer cut at 120. They are now returned whole, and the stored rows were repaired.
  • A long API key name no longer breaks lookups made with it. The usage label api · <key name> is now cut to 100 characters, which every column that records it can hold.

markdown version: /changelog/2026-10-02-icloud-and-proton-mailboxes-lei-cross-checks-location-confidence-and-dataset-freshness.md · atom feed: /changelog.atom

All releases