Skip to content

Expo: A networking error occurred during POST request #19

Closed
@spsaucier

Description

@spsaucier

When I try to initialize Statsig using the Expo client, I'm getting the error specified here: https://github.com/statsig-io/js-client-monorepo/blob/main/packages/client-core/src/NetworkCore.ts#L270

ERROR  [Statsig] A networking error occurred during POST request to https://featureassets.org/v1/initialize?k=client-MY_CLIENT_KEY&st=javascript-client-expo&sv=3.10.0&t=1738103586633&sid=474fe0de-873f-41b1-bf50-0d5f71814139&se=1. TypeError: Network request failed [TypeError: Network request failed]
ERROR  [Statsig] A networking error occurred during POST request to https://prodregistryv2.org/v1/rgstr?k=client-MY_CLIENT_KEY&st=javascript-client-expo&sv=3.10.0&t=1738103591179&sid=474fe0de-873f-41b1-bf50-0d5f71814139&ec=2. TypeError: Network request failed [TypeError: Network request failed]
WARN  [Statsig] Failed to flush events.
ERROR  [Statsig] A networking error occurred during POST request to https://prodregistryv2.org/v1/rgstr?k=client-MY_CLIENT_KEY&st=javascript-client-expo&sv=3.10.0&t=1738103591184&sid=474fe0de-873f-41b1-bf50-0d5f71814139&ec=1. TypeError: Network request failed [TypeError: Network request failed]
WARN  [Statsig] Failed to flush events.
ERROR  [Statsig] A networking error occurred during POST request to https://prodregistryv2.org/v1/rgstr?k=client-MY_CLIENT_KEY&st=javascript-client-expo&sv=3.10.0&t=1738103601004&sid=474fe0de-873f-41b1-bf50-0d5f71814139&ec=2. TypeError: Network request failed [TypeError: Network request failed]
WARN  [Statsig] Failed to flush events.

The Expo docs mention that some users experienced a networking error before SDK version 3.1.0, but I am experiencing it on 3.11.0 as well: https://docs.statsig.com/client/javascript-sdk/expo#network-issues
"@statsig/expo-bindings": "^3.11.0",

My provider:

import React, { PropsWithChildren, useEffect, useState } from 'react';
import { MMKV } from 'react-native-mmkv';
import { StatsigProviderExpo } from '@statsig/expo-bindings';

import { useFacilityProvider } from 'app/scan/components/Facilities/JoinFacilityProvider';

import { BREADCRUMB_TYPES } from '../config/enums';
import { getAppVersion, getEnvVar } from '../util/env';
import { logBreadcrumb, logError } from '../util/monitorClient';
import { useAuth } from './AuthProvider';

export const StatsigProvider = ({ children }: PropsWithChildren<any>) => {
  const { user } = useAuth();
  const { facility } = useFacilityProvider();
  const [storageProvider] = useState(() => {
    const mmkv = new MMKV();
    return {
      isReady: () => true,
      isReadyResolver: () => null,
      getProviderName: () => 'MMKV',
      getAllKeys: () => mmkv.getAllKeys(),
      getItem: (key: string) => mmkv.getString(key) ?? null,
      setItem: (key: string, value: string) => mmkv.set(key, value),
      removeItem: (key: string) => mmkv.delete(key),
    };
  });

  // Log errors if user or facility data is missing
  useEffect(() => {
    if (!user) {
      logError('Statsig error: No user data available', {
        source: 'StatsigProvider',
      });
    }
    if (!facility) {
      logError('Statsig error: No facility data available', {
        source: 'StatsigProvider',
        ...user,
      });
    }
  }, [user, facility]);

  useEffect(() => {
    if (user) {
      logBreadcrumb('Statsig: User updated', BREADCRUMB_TYPES.log, {
        userID: user._id,
        email: user.email,
        facilityId: facility?.facilityId,
      });
    }
  }, [user, facility]);

  return (
    <StatsigProviderExpo
      sdkKey={getEnvVar('STATSIG_KEY') || ''}
      options={{
        storageProvider,
        environment: {
          tier: getEnvVar('ENVIRONMENT'),
        },
      }}
      user={{
        userID: user?._id || '',
        email: user?.email || '[email protected]',
        locale: user?.market,
        appVersion: getAppVersion(),
        custom: user
          ? {
              appLanguage: user.appLanguage,
              deviceId: user.deviceId,
              deviceManufacturer: user.deviceManufacturer,
              deviceModel: user.deviceModel,
              facilities: user.facilities,
              platform: user.platform,
              platformVersion: user.platformVersion,
              name: user.name,
              userAgent: 'FMA',
            }
          : undefined,
        customIDs: facility?.facilityId
          ? {
              facilityId: facility.facilityId,
            }
          : undefined,
      }}
    >
      {children}
    </StatsigProviderExpo>
  );
};

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions