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
221Bas a building number- A Scottish
1/2flat 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
- The UK Postcode Format Explained: Areas, Districts, Sectors and Units
- Royal Mail Address Formatting: How to Lay Out a UK Address Correctly
- How UK Address Generators Work — and How to Tell a Good One
- Using Real Customer Data in Test Environments: The UK GDPR Problem
- The UK Telephone Numbering Plan, and the Numbers Reserved for Fiction
- Validating UK Postcodes in JavaScript, Python and SQL
- Where UK Address Data Comes From: PAF, ONSPD, OS Open Names and AddressBase