I hope you are talking about the Header TEID, I checked both the following document for the GTP-U header and GTP-C header i.e. 29281 & 29.060 and both the document are saying that the TEID is always present field however in some cases it should be set to zero -
From 29.281
Tunnel Endpoint Identifier (TEID): This field unambiguously identifies a tunnel endpoint in the receiving GTP-U protocol entity. The receiving end side of a GTP tunnel locally assigns the TEID value the transmitting side has to use. The TEID shall be used by the receiving entity to find the PDP context, except for the following cases:
The Echo Request/Response and Supported Extension Headers notification messages, where the Tunnel Endpoint Identifier shall be set to all zeroes.
The Error Indication message where the Tunnel Endpoint Identifier shall be set to all zeros.
From 29.060
Tunnel Endpoint Identifier (TEID): This field unambiguously identifies a tunnel endpoint in the receiving GTP U or GTP-C protocol entity. The receiving end side of a GTP tunnel locally assigns the TEID value the transmitting side has to use. The TEID values are exchanged between tunnel endpoints using GTP-C (or RANAP, over the Iu) messages.