Too much data in one barcode: when a GS1-128 overflows

LabelCraft - barcode labels for Shopify that print at exactly the size you set.

EN · FR · DE · ES
The guarantees behind every label
Exact to ±0.1 mm

Every label prints at the size you set - measured, not approximate.

Never a silent failure

Overflow or a missing barcode always raises a visible warning before you print.

Whole-dot barcodes

Modules snap to your printer's dots, so codes stay crisp and scan first time.

Your barcodes, untouched

We never overwrite or reassign a product's existing barcode.

You tried to pack a GTIN plus net weight, price, batch and serial into one GS1-128 (or plain Code 128) symbol, and the trailing fields fell off. This is not a bug - a single linear barcode has a hard capacity ceiling, and a payload that tags every field with an AI (Application Identifier) hits it faster than the raw digit count suggests. This guide explains why, and what to do about it.

Every extra field is tagged, and every tag costs characters

A GS1-128 carries a GTIN plus extra fields, each prefixed by an AI (Application Identifier) that says what the digits mean: 01 for the GTIN, 10 for batch/lot, 17 for expiry, 3103 for net weight, 3922 for price, and 21 for serial. The AI digits, the field value and a separator between variable-length fields all live inside the same one symbol. See GS1-128 Application Identifiers for the exact element strings LabelCraft builds.

The hard ceiling: 48 symbol characters, 165.1 mm

A single GS1-128 symbol holds at most 48 symbol characters and 165.1 mm of printed length. Past either limit it physically cannot be one barcode - there is no font size or printer setting that buys more room inside one symbol. The only way past the ceiling is to carry less, or to split the data across two symbols.

The catch is that 48 characters is not the same as 96 digits. Code Set C packs 2 digits into one symbol character, but two things eat into that: an odd-length numeric run costs one extra character to finish, and every variable-length field needs its own FNC1 separator that is itself one character. So a real multi-field payload reaches the ceiling well before a naive "digits divided by 2" estimate says it should.

A payload that overflows

How LabelCraft catches an over-capacity GS1-128 before you print

LabelCraft runs a pre-flight capacity check the moment you assemble a GS1-128. If the fields you chose run past the 48-character or 165.1 mm limit, it flags the overflow before you print and names exactly which AIs do not fit - it never silently drops the trailing data and prints a barcode that scans back short. This is the same never-silent guard the whole render engine follows: a code that cannot hold what you asked is caught at design time, not at the receiving dock.

Once a symbol does fit, it still has to be wide enough to read. If a too-narrow GS1-128 will not scan after you trim the data, work through barcode not scanning next.

Install free - 200 labels per month →

More guides: GS1-128 Application Identifiers, carton and case labels, barcode not scanning - or contact LabelCraft support.

Related guides