How to find cause of !Bad Id3v2 errors

I'm creating Mp3 files.When I load them into Mp3Tag some of them get !BadId3v2V3 errors. Is there any way to see what is the cause of badness? Search revealed several mentions of an error log but I can't find any way to turn it on. In my IT career I always implemented a low-level trace which could be turned on at run-time. Is there some magic to do this with Mp3Tag? Command line switch?

No swtich.
You would have to resort to the creating program that you use before you load the files into MP3tag.
Alternatively, check out the programs linked here:

It's often related to invalid ID3v2 frame names, which are reported by MP3 Diags available from the linked topic.

I've found what is causing the error. The Frame size field on an APIC frame contains a 0xfn byte. I was was treating the field as a SyncSafe integer which gave an erroneous value. The correct value was obtained by treating the field as a normal integer. The ID3v2 spec (ID3v2 overview) roughly parapharased says that the MP3 syncsignal(0xFFFE) is never present in all tags. So I assumed that the Frame size was sync safe (bit 8 never set) as sect 3.3 merely states 'The frame ID is followed by a size descriptor'. My questions are (1) what is the 'correct' way of dealing with a Frame size. and (2) what happens wih regard to MP3 frame scanning if a Frame Size contains 0xFFFE and (3) where can I find Mp3tagError.log (searched and not in install dir nor %appdata%?

  1. If the header has the unsync flag set, you'd have to apply unsynchronization on the whole tag.
  2. It depends on the unsync flag, see 1.
  3. It's usually at %APPDATA%\Mp3tag\Mp3tagError.log for Standard installations.