Skip to content

Error: Only one COMM tag allowed with the same Language + Description (eng + ) however, data passed does not match this condition. #472

@henrydut99

Description

@henrydut99

I wish to preserve all COMM frames in an id3 tag. Each frame has a different description but the same language: eng.

Here is the data away being passed to getID3 from Ampache's vainfo.php wrapper:

2025-09-19T21:26:21+00:00 [admin] (Ampache\Module\Song\Tag\SongTagWriter) -> After write_id3, $result[id3v2][COMM]: Array
(
[0] => Array
(
[frame_name] => COMM
[frame_flags_raw] => 0
[data] => POOR
[datalength] => 30
[dataoffset] => 130
[framenamelong] => Comments
[framenameshort] => comment
[flags] => Array
(
[TagAlterPreservation] =>
[FileAlterPreservation] =>
[ReadOnly] =>
[compression] =>
[Encryption] =>
[GroupingIdentity] =>
)

        [description] => MusicMatch_Preference
        [encodingid] => 0
        [encoding] => ISO-8859-1
        [language] => eng
        [languagename] => English
    )

[1] => Array
    (
        [frame_name] => COMM
        [frame_flags_raw] => 0
        [data] => Comment set but user to rememeber track details.
        [datalength] => 49
        [dataoffset] => 1234
        [framenamelong] => Comments
        [framenameshort] => comment
        [flags] => Array
            (
                [TagAlterPreservation] =>
                [FileAlterPreservation] =>
                [ReadOnly] =>
                [compression] =>
                [Encryption] =>
                [GroupingIdentity] =>
            )

        [description] =>
        [encodingid] => 0
        [encoding] => ISO-8859-1
        [language] => eng
        [languagename] => English
    )

[2] => Array
    (
        [frame_name] => COMM
        [frame_flags_raw] => 0
        [data] => Excellent copy
        [datalength] => 38
        [dataoffset] => 1620
        [framenamelong] => Comments
        [framenameshort] => comment
        [flags] => Array
            (
                [TagAlterPreservation] =>
                [FileAlterPreservation] =>
                [ReadOnly] =>
                [compression] =>
                [Encryption] =>
                [GroupingIdentity] =>
            )

        [description] => SONGS-DB_PREFERENCE
        [encodingid] => 0
        [encoding] => ISO-8859-1
        [language] => eng
        [languagename] => English
    )

)

here is what getid3 returns:

2025-09-19T21:26:21+00:00 [admin] (Ampache\Module\Util\VaInfo) -> [DynamicEncCode] Error Writing Tags: WriteID3v2() failed with message(s):

  • Only one COMM tag allowed with the same Language + Description (eng + )
  • Frame "COMM" is NOT allowed
  • $this->GenerateID3v2FrameData() failed for "COMM"
  • $this->GenerateID3v2Tag() failed

however as you can see from inspecting the data array, the data does not match the error. Each COMM frame has a different description and the same language "eng". The frames with descriptions are set by software after analyzing the mp3 structure. The COMM frame with no description is set by tagging software. I wish to keep all three as they all contain valuable data.

Why is this data set throwing this error? Is it a bug or is the error description inaccurate?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions