^DF saves the format on the printer so that later labels recall it with ^XF and send only the changing data into numbered ^FN fields. This format has no ^FN at all, so every recall prints exactly the same label. A common cause is a design tool that exported text or a barcode as a ^GF image: an image cannot take a variable.
^XA^DFR:SHELF.ZPL^FS^FO50,50^GFA,8,8,1,FFFFFFFFFFFFFFFF^FS^XZFinding: ZPL2003 · line 1:4 — The format stored with ^DF has no ^FN fields — every ^XF recall prints the same label and no data can be changed
Open the broken label in the editor →
Turn each field that should change into ^FN1, ^FN2 and so on, and send the values with ^XF. Re-export from the design tool with variables or barcodes as native fields instead of graphics.
^XA^DFR:SHELF.ZPL^FS^FO50,50^A0N,40^FN1^FS^XZOpen the corrected label in the editor
ZPL2001 Field data not terminated with ^FS · ZPL2002 Field without a position
npx labelixa validate "labels/**/*.zpl" lints your files and prints this page's address next to each finding. /docs/cli