Control Center - bug displaying UI for messages with compound, nested Avro key

I’ve found the following bugs in Confluent Control Center (I’ve tried with versions 5.4.2 and 5.5.1)

Setup:

  1. Produce messages with an Avro key (see below for schema)
  2. View messages in Control Center

Bugs:

  1. Display of the “message fields” in the lefthand area parses only some of the key schema, as if it’s generalizing from an individual message instead of from the schema.

    ^ “external” fails to list any sub-fields
  2. Display of the message columns in the “table” view likewise lacks some of the key’s fields, again as if it too is based on a single message rather than the schema.

    ^ “key.internal” should instead be a series of key fields just like “key.external.*”
  3. Even the key fields which are correctly listed in “table” view incorrectly display empty values.
    ^ “key.external.*” fields incorrectly display “null” even when their values are not null.
  4. Display of the messages in the “cards” view, when expanded, shows only a truncated version of the key (while instead the value is fully listed)

    ^ In expanded card mode, I’d expect the key to expand, just like the value does.

Note however that if I select one or more messages from Control Center and download them as JSON, the downloaded files contain correctly contain the keys and values as cast to JSON.
And likewise if I consume these messages with kafkacat or kafka-avro-console-consumer they are well-formed. Thus these all appear to be UI bugs with Control Center.

Key schema listed below:

{
  "fields": [
    {
      "default": null,
      "name": "external",
      "type": [
        "null",
        {
          "fields": [
            {
              "name": "source",
              "type": {
                "name": "ExternalUnitSource",
                "symbols": [
                  "ABC",
                  "DEF"
                ],
                "type": "enum"
              }
            },
            {
              "logicalType": "uuid",
              "name": "integration_config_key",
              "type": "string"
            },
            {
              "name": "property_id",
              "type": "string"
            },
            {
              "name": "unit_number",
              "type": "string"
            },
            {
              "default": null,
              "name": "building_number",
              "type": [
                "null",
                "string"
              ]
            },
            {
              "default": null,
              "name": "floor_plan_id",
              "type": [
                "null",
                "string"
              ]
            }
          ],
          "name": "ExternalUnitIdentifier",
          "type": "record"
        }
      ]
    },
    {
      "default": null,
      "name": "internal",
      "type": [
        "null",
        {
          "fields": [
            {
              "name": "source",
              "type": {
                "name": "InternalUnitSource",
                "symbols": [
                  "GHI",
                  "JKL"
                ],
                "type": "enum"
              }
            },
            {
              "name": "company_id",
              "type": "string"
            },
            {
              "name": "property_id",
              "type": "string"
            },
            {
              "name": "unit_number",
              "type": "string"
            },
            {
              "default": null,
              "name": "building_number",
              "type": [
                "null",
                "string"
              ]
            },
            {
              "default": null,
              "name": "floor_plan_id",
              "type": [
                "null",
                "string"
              ]
            }
          ],
          "name": "InternalUnitIdentifier",
          "type": "record"
        }
      ]
    }
  ],
  "name": "UnitIdentifier",
  "namespace": "com.sample.kafka",
  "type": "record"
}