Hi, we have DataHub (v.0.13.0) running in AWS (EKS, MSK, RDS, OpenSearch). I added a structured property to a dataset <https://datahubproject.io/docs/api/openapi/openapi-structured-properties/|following the example in the docs>. I can return the dataset properties with GraphQL API, but the OpenAPI GET /v2/entity/dataset/{urn} fails with the error below. However, the GET /v2/entity/{entityName}/{entityUrn} works.
"cause2": "java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.ArrayList<java.lang.Object>` from Object value (token `JsonToken.START_OBJECT`)\n at [Source: (String)&quot;{&quot;properties&quot;:[{&quot;propertyUrn&quot;:&quot;urn:li:structuredProperty:my.test.MyProperty01&quot;,&quot;values&quot;:[{&quot;string&quot;:&quot;foo&quot;}]}],&quot;__type&quot;:&quot;StructuredProperties&quot;}&quot;; line: 1, column: 119] (through reference chain: io.datahubproject.openapi.generated.StructuredProperties$StructuredPropertiesBuilder[&quot;properties&quot;]->java.util.ArrayList[0]->io.datahubproject.openapi.generated.StructuredPropertyValueAssignment$StructuredPropertyValueAssignmentBuilder[&quot;values&quot;]->java.util.ArrayList[0])",
"cause1": "java.lang.RuntimeException: Failed to batch get entities with urns: [urn:li:dataset:(urn:li:dataPlatform:redshift,test_db_2.test_schema_2.test_table_2,PROD)], projectedAspects: [editableSchemaMetadata, container, testResults, siblings, access, datasetUpstreamLineage, viewProperties, datasetProperties, globalTags, browsePathsV2, embed, schemaMetadata, datasetKey, domains, subTypes, datasetProfile, deprecation, browsePaths, incidentsSummary, datasetUsageStatistics, structuredProperties, ownership, dataPlatformInstance, datasetDeprecation, editableDatasetProperties, glossaryTerms, institutionalMemory, upstreamLineage, operation, forms, status]",
"servlet": "openapiServlet",
"cause3": "com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.ArrayList<java.lang.Object>` from Object value (token `JsonToken.START_OBJECT`)\n at [Source: (String)&quot;{&quot;properties&quot;:[{&quot;propertyUrn&quot;:&quot;urn:li:structuredProperty:my.test.MyProperty01&quot;,&quot;values&quot;:[{&quot;string&quot;:&quot;foo&quot;}]}],&quot;__type&quot;:&quot;StructuredProperties&quot;}&quot;; line: 1, column: 119] (through reference chain: io.datahubproject.openapi.generated.StructuredProperties$StructuredPropertiesBuilder[&quot;properties&quot;]->java.util.ArrayList[0]->io.datahubproject.openapi.generated.StructuredPropertyValueAssignment$StructuredPropertyValueAssignmentBuilder[&quot;values&quot;]->java.util.ArrayList[0])",
"cause0": "jakarta.servlet.ServletException: Request processing failed: java.lang.RuntimeException: Failed to batch get entities with urns: [urn:li:dataset:(urn:li:dataPlatform:redshift,test_db_2.test_schema_2.test_table_2,PROD)], projectedAspects: [editableSchemaMetadata, container, testResults, siblings, access, datasetUpstreamLineage, viewProperties, datasetProperties, globalTags, browsePathsV2, embed, schemaMetadata, datasetKey, domains, subTypes, datasetProfile, deprecation, browsePaths, incidentsSummary, datasetUsageStatistics, structuredProperties, ownership, dataPlatformInstance, datasetDeprecation, editableDatasetProperties, glossaryTerms, institutionalMemory, upstreamLineage, operation, forms, status]",
"message": "jakarta.servlet.ServletException: Request processing failed: java.lang.RuntimeException: Failed to batch get entities with urns: [urn:li:dataset:(urn:li:dataPlatform:redshift,test_db_2.test_schema_2.test_table_2,PROD)], projectedAspects: [editableSchemaMetadata, container, testResults, siblings, access, datasetUpstreamLineage, viewProperties, datasetProperties, globalTags, browsePathsV2, embed, schemaMetadata, datasetKey, domains, subTypes, datasetProfile, deprecation, browsePaths, incidentsSummary, datasetUsageStatistics, structuredProperties, ownership, dataPlatformInstance, datasetDeprecation, editableDatasetProperties, glossaryTerms, institutionalMemory, upstreamLineage, operation, forms, status]",
"url": "/openapi/v2/entity/dataset/urn%3Ali%3Adataset%3A%28urn%3Ali%3AdataPlatform%3Aredshift%2Ctest_db_2.test_schema_2.test_table_2%2CPROD%29",
"status": "500"
}```
Also, I tried to remove the structured property using the curl command shown in the same document and it also errored with: Error 415 Unsupported Media Type. See the error below (slightly redacted for privacy)
```* Preparing request to <https://data-hub-test.ic1.org/openapi/v2/entity/dataset/urn%3Ali%3Adataset%3A%28urn%3Ali%3AdataPlatform%3Aredshift%2Ctest_db_2.test_schema_2.test_table_2%2CPROD%29/structuredProperties>
* Current time is 2024-04-03T20:25:06.472Z
* Enable automatic URL encoding
* Using default HTTP version
* Enable timeout of 30000ms
* Disable SSL validation
* Found bundle for host <http://data-hub-test.ic1.org|data-hub-test.ic1.org>: 0x1200582f780 [can multiplex]
* Re-using existing connection! (#9) with host <http://data-hub-test.ic1.org|data-hub-test.ic1.org>
* Connected to <http://data-hub-test.ic1.org|data-hub-test.ic1.org> (10.233.52.234) port 443 (#9)
* Using Stream ID: 5 (easy handle 0x12008571600)
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
> PATCH /openapi/v2/entity/dataset/urn%3Ali%3Adataset%3A%28urn%3Ali%3AdataPlatform%3Aredshift%2Ctest_db_2.test_schema_2.test_table_2%2CPROD%29/structuredProperties HTTP/2
> Host: <http://data-hub-test.ic1.org|data-hub-test.ic1.org>
> user-agent: insomnia/8.6.0
> accept: application/json
> content-type: application/json-patch+json
> authorization: Bearer <redacted>
> content-length: 183
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
| {
| "patch": [
| {
| "op": "remove",
| "path": "/properties/urn:li:structuredProperty:my.test.MyProperty01"
| }
| ],
| "arrayPrimaryKeys": {
| "properties": [
| "propertyUrn"
| ]
| }
| }
* We are completely uploaded and fine
* TLSv1.2 (IN), TLS header, Supplemental data (23):
< HTTP/2 415
< date: Wed, 03 Apr 2024 20:25:06 GMT
< content-type: application/octet-stream
< content-length: 0
< accept: application/json-patch+json
< server: Jetty (11.0.19)
< accept-patch: application/json-patch+json```
Thoughts?