Having some config trouble here… trying to map custom data actions to the performance dashboard in EU-FR but the metrics are null. no api errors just blank fields after deployment. is there a cache delay or a schema mismatch in the architect flow version 2.1?
If I remember correctly, this issue often stems from how the Data Action definition is structured within the Premium App manifest, rather than a simple cache delay. When deploying to EU-FR, the platform enforces stricter schema validation for custom metrics. The metrics appear null because the result object in your Data Action response lacks the specific metric key structure required by the performance dashboard API. It is not a version 2.1 bug.
{
“error”: “InvalidMetricSchema”,
“message”: “Missing required field ‘metric’ in result payload. Expected object with ‘name’ and ‘value’.”
}
Ensure your Data Action returns the metric in this exact format:
{
"result": {
"metric": {
"name": "custom_metric_name",
"value": 123
}
}
}
Also, verify that the metric name matches the one defined in the app’s manifest.json under metrics. A mismatch here causes silent failures where no API error is thrown, but the dashboard receives empty data. Restarting the app instance usually forces a schema re-sync after correcting the payload structure.
The easiest way to fix this is to drop the metric key and just return a flat JSON object. the dashboard doesn’t parse nested structures for custom actions, so keep the payload simple with key and value at the root level.
This is caused by the dashboard expecting a flat key/value pair, not a nested metric object. drop the wrapper and return { "key": "my_custom_metric", "value": 1 }.
Warning: eu-fr validates the schema strictly, so extra keys will kill the deployment.
It depends, but generally the metric key is mandatory for the performance dashboard to parse it, so dropping it like `` suggested will just break the ingestion. you need that wrapper { "metric": { "key": "...", "value": 1 } } or the API returns null because the schema validation fails silently in EU-FR.