Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

onFeatureFlags throws exception #1204

Open
dehli opened this issue May 24, 2024 · 0 comments
Open

onFeatureFlags throws exception #1204

dehli opened this issue May 24, 2024 · 0 comments

Comments

@dehli
Copy link

dehli commented May 24, 2024

Hello, I'm experiencing a bug when using onFeatureFlags and the Posthog JS snippet. If I call onFeatureFlags before Posthog has loaded, then Posthog throws an error when the feature flags load.

I have the following snippet which, to my understanding, sets window.posthog.onFeatureFlags with a placeholder function and asynchronously loads the full posthog library.

<script>
    !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.async=!0,p.src=s.api_host+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys onSessionId".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
    posthog.init('<ph_project_api_key>', {api_host: https://us.i.posthog.com})
</script>

If I call window.posthog.onFeatureFlags before posthog.__loaded is true, it will properly execute but throw whenever the feature flags load (and callbacks are triggered).

Below is the line that throws:

image

and when inspecting featureFlagEventHandlers you can see that it's an array of a single array (rather than an array of functions like the code expects).

image
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant