The manual includes this section describing how to start a tag file:
The first line of global tags files should be a comment, introduced by # followed by a space and a string like format=pipe, format=ctags or format=tagmanager respectively, these are case-sensitive. This helps Geany to read the file properly. If this line is missing, Geany tries to auto-detect the used format but this might fail.
This is wrong for ctags files because after reading the ```# format=ctags``` line the file is rewinded. And then ctags parsing aborts on the very first line because it is expecting a different format. It only skips ```!_TAG_``` lines.
On recognizing ```!_TAG_``` lines the tag file format is set to ```TM_FILE_FORMAT_CTAGS``` so tag file authors should be instructed to only use such lines for ```ctags``` files and not lines starting with ```#```.