@Test void niceErrorOnNull_id() {
    Throwable exception = assertThrows(IllegalArgumentException.class, () -> {

      String json =
        """
        {
          "traceId": "6b221d5bc9e6496c",
          "name": "get-traces",
          "id": null
        }
        """;

      SpanBytesDecoder.JSON_V1.decodeOne(json.getBytes(UTF_8));
    });
    assertThat(exception.getMessage()).contains("Expected a string but was NULL");
  }
Particular, thrift can mistake malformed content as a huge list. Let's not blow up.
zipkin/src/test/java/zipkin2/codec/V1SpanBytesDecoderTest.java