Describe the bug
I created a feature flag, a metric, and an experiment which uses that feature flag and metric. I am not able to consistently log metrics to my experiment using client.track(...) when there is a time delay between evaluating the feature flag and tracking the metric.
To reproduce
The following code fails to populate the experiment with data.
import * as LaunchDarkly from 'launchdarkly-node-server-sdk';
const LD_KEY = '...';
const DELAY = 30000; // 30 seconds
(async () => {
const context: LaunchDarkly.LDContext = {
kind: 'user',
key: `user-key-alex`,
firstName: 'Alex',
lastName: 'Miller',
email: 'alexmiller@gmail.com',
};
const client = LaunchDarkly.init(LD_KEY, { stream: false });
await client.waitForInitialization();
await client.variation('myFeature', context, false);
// Pause between evaluating feature flag and tracking metric
await new Promise(resolve => setTimeout(resolve, DELAY));
client.track('myMetric', context, null, 10);
await client.flush();
client.close();
})();
However, if I change DELAY to DELAY = 10000 (10 seconds), then the experiment is populated with data.
Expected behavior
I would not expect a time delay between evaluating a feature flag and tracking a metric to have an impact on whether the data shows up in the experiment.
SDK version
launchdarkly-node-server-sdk@7.0.0
Language version, developer tools
Node v14.19.3
OS/platform
MacOS