Metric Designer - Field meta doesn't exist in type Boxed

#1

I tried saving both a new metric and an existing metric in Metric Designer, but I always get the error:

{“id”:“2931.7437”,“message”:“Field meta doesn’t exist in type Boxed”,“codes”:[“BadField”]}

What is the best way to go about debugging this? I have not used Metric Designer for this application before this.

#2

What does the metric you changed/created look like? And what is the api that Metric designer generates to make the call (including payload)?

#3

It happens for any metric, even if I just try to save an existing metric as is. As an example, the payload for saving the base Predictive Maintenance metric CasingPressure is as follows:

Action: MetadataUtil?action=upsertMetricWithTranslation

Header Payload: {"metric":{"srcType":{"typeName":"BaseAsset"},"path":"pointMeasurements.(name == 'casingPressure')","id":"CasingPressure_BaseAsset","version":1,"name":"CasingPressure","expression":"avg(avg(normalized.data.quantity))","description":"CasingPressure"},"isCompoundMetric":false,"translation":{"id":"en.data.SimpleMetric.CasingPressure.description","key":"data.SimpleMetric.CasingPressure.description","value":"CasingPressure","locale":{"id":"en"}}}

Response: { "id" : "7029.10314", "message" : "Field meta doesn't exist in type Boxed", "codes" : [ "BadField" ] }

#4

It’s likely that the Header is actually the payload of the api call.

When you’ve tried to invoke the method in static/console and put in a breakpoint in the MetadataUtil.upsertMetricWithTranslation() method, can you see any issue?

It is true that the Boxed type does not have a meta (it’s not persistable). It sounds like a bug.

#5

Seems like bug with MetadataStore.upsertSeedObjs. If you have any metric seed data that is defined as list of metrics per file instead of one metric per file, it could be causing this error.

#6

We do have files that contain multiple metrics, sometimes dozens. Is there any way to work around this other than separating the metrics out into their own files?

#7

That is the only workaround now. Please file a ticket with details to reproduce.