bchavez / bchavez/Bogus

en_GB (UK) phone numbers are sometimes invalid

Open
#558 2 comments 0 reactions 0 assignees View on GitHub
enhancement future
Dominant language
C#
Stars
9.7k
Forks
538
PR merge metrics
No merged PRs in 30d

Description

### Bogus NuGet Package

35.6.0

### .NET Version

NET 8.0.400

### Visual Studio Version

Rider 2024.1.4

### What operating system are you using?

Windows

### What locale are you using with Bogus?

en_GB

### Problem Description

Some phone numbers generated by Faker.Phone.PhoneNumber() when using the en_GB locale are invalid

### LINQPad Example or Reproduction Steps

- Bogus 35.6.0
- libphonenumber-csharp 8.13.43
```csharp
using Bogus;
using PhoneNumbers;

void Main()
{
while(true)
{
var faker = new Faker("en_GB");

string phoneNumber = faker.Phone.PhoneNumber();

PhoneNumberUtil? phoneNumberUtil = PhoneNumberUtil.GetInstance();
PhoneNumbers.PhoneNumber? parsedPhoneNumber = phoneNumberUtil.Parse(phoneNumber, "GB");

if (!phoneNumberUtil.IsValidNumberForRegion(parsedPhoneNumber, "GB"))
{
throw new Exception("Invalid phone number " + phoneNumber);
}
}
}
```

### Expected Behavior

All UK phone numbers generated by `faker.Phone.PhoneNumber();` should be valid.

See Google's libPhoneNumber: https://github.com/google/libphonenumber/blob/master/resources/PhoneNumberMetadata.xml#L11093

### Actual Behavior

`faker.Phone.PhoneNumber();` sometimes generates invalid UK phone numbers, such as:
- 016977 0004
- 0961 296 3851
- 016977 8550
- 0887 603 2383

### Known Workarounds

`Faker.Phone.PhoneNumber("07#########")` is a suitable workaround.

### Could you help with a pull-request?

No

Contributor guide

Open the contributing guide

Research direction

Start at the Faker.Phone.PhoneNumber() entry point for the en_GB locale and compare its generated patterns with the linked Google libPhoneNumber UK metadata. Use the provided libphonenumber-csharp reproduction and listed invalid examples to verify that generated numbers are valid for GB, including the documented 07######### workaround pattern.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
localization
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.