Form validation is broken throughout the Jet2 app
---
Validation triggers immediately on input, not on submit:
Typing into any field (email, name, date of birth) causes error messages to appear after a single character is typed. This is incorrect behaviour. Validation should trigger on submit, and then update on input change thereafter.
Example:
* Tap into "Date of Birth"
* Type 0
* Immediately triggers the error: "Please ensure date of birth is complete."
* Of course it’s not complete - it’s the first character. This should not be throwing an error until the user actually tries to submit the form.
This anti-pattern exists in every single field and is a textbook example of incorrect validation design.
---
Incorrect input types for key fields (email, password):
* The email field used in login and signup does not specify the correct input type.
* On iOS, this causes the wrong keyboard to appear (with no @ symbol in easy reach).
* It also enables first-letter auto-capitalisation, which is completely inappropriate for emails.
* The password field seems to be typed as plain text rather than type="password".
* No secure keyboard.
* No password autofill.
* No suggested password support from the OS.
These are basic mistakes that make login needlessly frustrating.
---
Data does not save - or at least, doesn’t appear to:
After filling out certain fields and tapping save, the app shows the message "Change saved successfully", yet the fields still display "Not specified."
Example:
* Go to personal details
* Enter a valid Date of Birth (e.g. 17/06/2000) and press Save
* Return to the Personal Details screen
* Date of Birth still reads "Not specified"
This applies to travel documents and other fields as well. Either:
* The data is not saved correctly
* Or the frontend is failing to display the saved value
Either way, the result is that the user has no idea whether the change actually went through.
---
Name validation is inconsistent, misleading, and broken
This is one of the worst parts of the app.
Problem 1 - Names with spaces silently fail
Example:
* First name: Toby
* Last name: Dixon Smith
* Press Save - nothing happens
There is no error message, no feedback, no disabled button - just silent failure. The assumption seems to be that last names can’t include spaces (which is false). Worse still, there’s no indication that this is the issue, leaving the user stuck.
Problem 2 - Invalid error triggers depending on typing order
Example sequence:
* Enter first name: Toby
* Enter last name: Dixon (with a trailing space)
* Error: "Please use valid characters for your last name."
* Select the first name field, backspace to change Toby to Tob, without modifying the last name field
* First name: Tob
* Last name: Dixon - no error
* Add trailing space to first name: Tob - now both fields show error
This proves that the validation is inconsistent and fragile - the same characters can be valid or invalid depending on typing sequence and which field is active.
Problem 3 - Short legal names are rejected
Example:
* First name: Jo or Ed
* Error: "Must be no less than 2 characters."
Both Jo and Ed are exactly two characters and are also legitimate, legal names. It is incorrect to assume these are always short for names like Josephine, Joseph, or Edward. Many people have names like Jo or Ed printed on their legal documents and passports.
Not only does this restriction make incorrect assumptions about name validity, but it also fails its own logic - two characters are not less than two characters. The validation message is misleading, and the rejection of short but legal names is unjustifiable.
---
Title selector doesn’t reliably apply the selected value
The dropdown used for title (Mr, Mrs, etc.) uses an iOS scroll picker (likely UIPickerView), but it does not always update the visible value after selection.
Steps to reproduce:
* Tap the title field
* Scroll to Mr and press Done
* Sometimes, "Please select" still shows
* Reopening the field shows that Mr is selected - but it wasn’t applied
This kind of broken UI state should never be allowed to ship.
---
Silent validation failure on Save
Even when all inputs appear correct and no errors are shown, the Save button may still do nothing.
Repro:
* Title: Mr
* First name: Toby
* Last name: Dixon Smith
* No error messages shown
* Save button is enabled
* Press Save - nothing happens, no feedback
This is likely because the backend is rejecting the input (e.g. due to the space in Dixon Smith), but the frontend is failing to surface that validation error. This kind of mismatch between frontend and backend validation logic is a critical UX failure.
---
Summary
This app breaks almost every basic rule of form design:
* Validation triggers too early
* Input types are incorrect
* Fields silently fail or reject valid values
* Error messages are inconsistent or completely missing
* Feedback after saving is unreliable or misleading
These are simple, static forms. There is no dynamic logic or complex interaction at play here. And yet they are broken at nearly every level.
No single developer is to blame for this. Mistakes happen in software development all the time. But the concern here is how many layers this had to pass through - code review, QA, product sign-off - and no one caught it. These aren’t niche bugs or edge cases; they are fundamental, easy-to-get-right behaviours that are hard to get this wrong. And harder still to let slip through a team of developers, including senior engineers, and be released by a company of Jet2's size.
Response from developer
Thank you for leaving feedback – our team is always working to improve your experience, and your feedback is really valuable to us! We will pass your feedback onto the relevant team for future enhancements. If you would like to provide any more information please contact us at app.support@jet2.com and we'd be happy to help.