Airline booking systems accept only one special meal code per passenger

Published:

Most airline booking systems accept one special meal code per passenger, per flight. Ask for gluten-free and non-lactose at the same time and there is no field for the second requirement: no industry-wide combined code exists, and Amadeus’s own booking procedure documents a single special meal for each passenger and segment.

The second dietary need is then handled outside the code system — through a free-text note, a call to the airline, or nothing at all. What happens to it after that is largely unmeasured.

Book a long-haul flight and you get one special meal box to tick. A traveler who is vegan and also needs to avoid gluten ticks vegan, then assumes the gluten-free part travels with it.

It doesn’t.

In the systems most airlines and travel agencies book through, a special meal request is a single coded instruction, and there is no standard way to send two. This isn’t buried in a fare rule or an obscure policy page. It sits in the plumbing that carries meal requests from a booking to a galley, and it applies whether you booked direct or through an agency.

On Asia-Pacific corridors that matters more than it would on a two-hour hop. A trans-Pacific or Europe-to-Asia flight serves several meals, so a dietary requirement that falls out of the system doesn’t cost you one disappointing tray — it costs you the crossing.

What follows is where the system stops, what happens to the requirement that leaves it, and the one question nobody in the industry has bothered to measure.

One coded meal per passenger, and no second field

Amadeus, one of the reservation systems travel agencies and airlines book through, sets out the limit in its own procedure: one special meal for each passenger and each flight segment, with BBML and SPML as the named exceptions. There is no second field.

For a traveler with a single restriction, that’s fine. For a traveler with two, it forces a choice nobody wanted to make — vegan or gluten-free, diabetic or low-salt, kosher or gluten-free. Whichever code you don’t pick becomes your problem to manage.

It’s a category problem, not a labeling quirk. A gluten-free requirement and a lactose one live in separate codes, GFML and NLML, and no combined code for the two turned up in the Airline Catering Association‘s own meal-code guidelines, which list each category individually.

What passengers are usually told to do instead is call the airline and explain both requirements to an agent. Whether that note sticks is the part nobody tracks.

The codes were built to be broad, not to be combined

The reason two requirements can’t share a slot is the same reason the system works at all. A meal code is shorthand — four letters any caterer at any airport can act on without a conversation. IATA standardizes the categories, the airline passes the code to a third-party caterer, and the caterer cooks to it.

Broad is the point. GFML means gluten intolerant meal, VGML means vegetarian vegan meal, NLML means non-lactose meal. Each is a separate code covering a single category, and none of them was built to express “gluten-free and vegan” as one instruction.

That breadth has a second consequence. A code names a category, not an ingredient list.

It was never designed to promise that a specific allergen is absent, or that a kitchen avoided cross-contamination while preparing the tray.

Medical and religious requirements sit inside the same structure. Diabetic and low-salt travelers hold separate codes, DBML and LSML, so a passenger managing both spans two categories. Kosher and gluten-free do exactly the same.

Common airline special-meal SSR codes and their single-category meanings
Code Full name Dietary category
GFML Gluten intolerant meal Gluten restriction
NLML Non-lactose meal Lactose or dairy restriction
VGML Vegetarian vegan meal Vegan
AVML Asian vegetarian meal Vegetarian, Asian-style
DBML Diabetic meal Medical or carbohydrate-controlled
LSML Low salt meal Low-sodium
KSML Kosher meal Religious
MOML Muslim meal Religious
VJML Vegetarian Jain meal Religious or cultural vegetarian
VLML Vegetarian lacto-ovo meal Lacto-ovo vegetarian
Source: Amadeus
Superdeals to Asia preview

Superdeals cover departures from North America, Europe and Australia.

Flight deals most people never see

Air Traveler Club monitors thousands of routes for pricing anomalies that traditional search engines miss. With ATC Superdeals members save up to 80% on each flight vs. regular fares.

Too good to be true? Check it out yourself. It's free.

Newsletter Form

Delivered weekly. Unsubscribe anytime.

Where a meal request quietly falls out of the booking

There’s a second failure point that has nothing to do with how many codes a system accepts. Book through a travel agency and the meal request travels from the agency’s system to the airline through a Global Distribution System — and it can drop out somewhere in that handoff. The airline never sees it.

You board believing a meal is coming.

This is the plumbing problem the industry discusses least, because the booking screen still shows a request. The airline’s record may show nothing at all.

Free text is the other informal channel. A second dietary requirement can ride along inside the special service request as written words rather than a code. Whether an airline honors that note, ignores it, or rejects it outright has no audited rate behind it — no dataset measures the outcome.

Carriers haven’t filled the gap either. No airline turned up in the research advertising a general two-code combination for one passenger on one flight segment.

How a meal request travels from a booking screen to your tray

The passenger name record carries your meal request as a special service request, or SSR. That request attaches to you, and to a specific flight segment where the airline requires one, and it must carry a four-letter code.

The airline receives it from the booking platform and uses it to plan catering and brief the caterer. That’s the whole chain. No conversation, no ingredient list, no annotation about a second requirement unless somebody types one in by hand.

This is where the constraint stops being abstract. A four-letter string — GFML, VGML, NLML — stands in for an entire dietary requirement, and the workflow treats that string as the whole of it. Two genuine requirements, one traveler, one coded slot.

The second need has three possible fates: a free-text note, a direct conversation with the airline, or a separate operational arrangement made outside the booking. None of them is a standard, and none is tracked.

What the gap costs you on a long-haul flight

Two constraints decide what a passenger with overlapping requirements can realistically get. The first is time: caterers need lead time to build a special meal, so requests have to be placed ahead of departure. Miss the window and the code option is gone, regardless of how many codes the system would have taken.

The second is the fallback. Fly without a pre-ordered special meal and the standard onboard options are all that’s left — on a long-haul Asia-Pacific service, those may not fit the diet at all.

Which leaves the practical read: the first requirement lives in the code, and the second lives outside it. Anything a passenger wants beyond that single slot has to be raised directly, before departure, because no mechanism will carry it for them.

ATC Intelligence

ATC Intelligence is the research division of Air Traveler Club. Backed by 15 years in Asia-Pacific aviation, we don't just report on the regional market; we live and work in it. By pairing AI-driven data with strict human fact-checking, we provide actionable, trustworthy journalism designed to make your trips to Asia smarter and more affordable.

Follow our daily coverage on Google News, Google Discover, and social media.

Key terms

SSR (Special Service Request)
A special service request, or SSR, is a coded instruction attached to a passenger’s booking that flags a specific need for the airline. In the Amadeus system, every SSR carries a mandatory four-letter service code, and meal requests are one category of SSR. For a traveler with two dietary restrictions, the SSR is where the trouble begins: the code holds one category, and the second has nowhere to sit.
PNR (Passenger Name Record)
A passenger name record, or PNR, is the file an airline or agency keeps for a booking, holding the itinerary and any service requests attached to it. Meal requests live in the PNR as SSRs, linked to the passenger and, where the airline requires it, to a specific flight segment. Because the PNR is the record the airline actually reads, a request that never reaches it stays invisible until the meal service begins.
GDS (Global Distribution System)
A global distribution system, or GDS, is the platform travel agencies use to book flights and pass requests through to airlines. Amadeus is one; Sabre and Travelport are the other major systems. A meal request crosses the GDS on its way to the airline, and that handoff is one of the points where a second dietary requirement can drop out of the booking entirely.
IATA
IATA, the International Air Transport Association, is the industry body that standardizes airline practices, including the categories behind special meal codes. That standardization is what lets a four-letter code mean the same thing to a caterer at any airport. The one-meal limit, though, is not an IATA rule — it comes from Amadeus’s booking system, which puts the constraint in software rather than in industry regulation.

Questions? Answers.

What is the difference between VGML and AVML?

They are separate single-category codes, not two settings of the same meal. VGML is the vegetarian vegan meal; AVML is the vegetarian Hindu or Asian vegetarian meal, as listed in the reviewed Amadeus code materials.

Can I request two special meal codes for a single flight?

Not through a standard booking field. Amadeus documents one special meal per passenger and segment, with BBML and SPML as the exceptions, and no industry-wide combined code — gluten-free plus non-lactose, for instance — turned up in the research. No airline was found advertising a general two-code combination for one passenger and flight segment.

What happens to a second dietary requirement that has no code of its own?

It can be added as free text inside the special service request, which is entered in the passenger name record. Whether airlines honor, ignore or reject those secondary notes has no audited rate — no dataset measures it.

Do all airlines apply the same one-meal-code rule?

Not in any way the research could confirm. Amadeus’s documented workflow allows one special meal per passenger and segment, and Korean Air states that a regular meal and a special meal cannot be requested together. Whether Sabre or Travelport impose an equivalent restriction was not established.