Why Your Address Form Rejects Perfectly Valid UK Addresses

Forms · August 2026 · 6 min read

Building names without numbers, BFPO, GIR 0AA, Northern Irish counties, Welsh street names and Scottish flat notation — the real addresses that break real forms.

Every UK developer has met someone whose address a website simply refuses to accept. Here is the catalogue of causes, and how to fix each one.

1. Requiring a house number

Hundreds of thousands of UK properties are identified by name alone: "Rose Cottage", "The Old Rectory", "Yew Tree Farm". A form that requires a numeric house number cannot accept any of them.

Fix: make the number optional and accept a building name in its place. Require that *at least one* of number or name is present, not both.

2. Rejecting alphanumeric numbers

12A, 221B, 1/2 (standard in Scottish tenements, meaning first floor, flat 2) and Unit 3B are all real. An integer field rejects every one.

Fix: store the building number as a string.

3. A postcode regex that only knows one shape

The most common home-grown pattern accepts AA9 9AA and AA99 9AA and nothing else. That rejects every single-letter area — B, E, G, L, M, N, S, W — which is Birmingham, Glasgow, Liverpool, Manchester, Sheffield and most of London. It also rejects the AA9A and A9A shapes used across central London.

Fix: implement all six formats, and the excluded letters with them. There is a worked example in the postcode format guide.

4. Requiring a county

Royal Mail dropped the county requirement in 1996. Worse, a required county *dropdown* forces users into a taxonomy that does not fit: Scottish addresses have council areas, Welsh addresses have principal areas or preserved counties, and Northern Irish addresses use traditional counties that no longer exist for local government.

Fix: make county optional and free-text, or drop it entirely.

5. Treating the post town as the city

The post town is a Royal Mail routing label. People in Hove have the post town HOVE even though Brighton and Hove is one city. Someone in Bromley has the post town BROMLEY, not LONDON, despite living in a London borough. Rejecting the post town because it does not match a council area list will fail for a lot of people.

Fix: accept the post town from your postcode lookup provider and do not second-guess it.

6. No support for BFPO

British Forces Post Office addresses serve personnel and their families overseas. They historically used BFPO 1234 with no postcode; the BF1 postcode area now provides a conventional postcode. A form that hard-requires a standard postcode locks out service families.

Fix: accept BF1 postcodes, and consider a BFPO option in the country selector.

7. Character-set failures

Welsh street names contain ŵ and ŷ; Irish and Scottish surnames contain apostrophes; a great many towns contain hyphens. Forms that strip non-ASCII characters mangle these, and validators that reject apostrophes lock out anyone called O'Brien. Storing a Welsh address in a latin1 column will corrupt it.

Fix: UTF-8 end to end, and never blocklist apostrophes or hyphens in names — escape correctly at the point of use instead.

8. Fields that are too short

Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch is 58 characters. Ordinary addresses regularly exceed a 30-character line. Truncation loses data silently.

Fix: allow at least 120 characters per address line, and test with the long cases.

9. Assuming the country

A UK address form that assumes England will describe things wrongly for the other three countries. Northern Ireland has a single postcode area for the whole country; Scotland has council areas; Wales has bilingual addressing.

Fix: carry the country as a field and derive it from the postcode area where you can.

10. Aggressive normalisation

Upper-casing everything, stripping spaces from postcodes on display, or "correcting" a post town to a nearby city all produce addresses that are wrong on a label.

Fix: normalise for comparison, store what the user entered plus a normalised form, and display the Royal Mail layout.

Test cases to add today

Put these in your test suite:

  • A building name and no number
  • 221B as a building number
  • A Scottish 1/2 flat notation
  • A Welsh street name with diacritics
  • A Northern Irish address with a BT postcode and a traditional county
  • A central London EC1A 1BB-shape postcode
  • GIR 0AA
  • A 58-character locality
  • An apostrophe in the recipient's surname

The UK address generator produces most of these naturally, including named buildings, Welsh street names and Northern Irish addresses.

More guides