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

React native deep linking not working when app is in background state #24624

Closed
DalbirKaur opened this issue Apr 26, 2019 · 64 comments
Closed

React native deep linking not working when app is in background state #24624

DalbirKaur opened this issue Apr 26, 2019 · 64 comments
Labels
API: Linking Bug Newer Patch Available Platform: Linux Building on Linux. Stale There has been a lack of activity on this issue and it may be closed soon.

Comments

@DalbirKaur
Copy link

DalbirKaur commented Apr 26, 2019

🐛 Bug Report

When the app is closed, I am able to get deep link url that is clicked by Linking.getInitialURL(). When the app is in the background state, then nothing is mounted. So, I am not able to get the url even by the Linking.addEventListener('url', method_name).

What is the way to achieve this?

To Reproduce

Expected Behavior

Code Example

componentDidMount() {
Linking.addEventListener('url', this._handleOpenURL);
},
componentWillUnmount() {
Linking.removeEventListener('url', this._handleOpenURL);
},
_handleOpenURL(event) {
console.log(event.url);
}
I have added this code in app.js

Environment

React Native Environment Info:
System:
OS: Linux 4.15 Ubuntu 18.04.1 LTS (Bionic Beaver)
CPU: (4) x64 Intel(R) Core(TM) i3-6098P CPU @ 3.60GHz
Memory: 1.73 GB / 15.57 GB
Shell: 4.4.19 - /bin/bash
Binaries:
Node: 10.11.0 - /usr/bin/node
npm: 6.7.0 - /usr/bin/npm
npmPackages:
react: 16.6.0-alpha.8af6728 => 16.6.0-alpha.8af6728
react-native: ^0.58.5 => 0.58.5
npmGlobalPackages:
create-react-native-app: 2.0.2
react-native-cli: 2.0.1
react-native-rename: 2.4.0
react-native-slideshow: 1.0.1

@react-native-bot
Copy link
Collaborator

Can you run react-native info and edit your issue to include these results under the Environment section?

If you believe this information is irrelevant to the reported issue, you may write `[skip envinfo]` alongside an explanation in your Environment: section.

@react-native-bot
Copy link
Collaborator

It looks like you are using an older version of React Native. Please update to the latest release, v0.59 and verify if the issue still exists.

The "Resolution: Old Version" label will be removed automatically once you edit your original post with the results of running `react-native info` on a project using the latest release.

@maleking
Copy link

are you added

<activity
  android:name=".MainActivity"
  android:launchMode="singleTask">

in AndroidManifest.xml ?
(https://facebook.github.io/react-native/docs/linking)

@DalbirKaur
Copy link
Author

DalbirKaur commented Apr 29, 2019

Yes, I have already added this in 'my_project/android/app/src/main/AndroidManifest.xml. Example of code:

<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize"
android:launchMode="singleTask">

@glocore
Copy link

glocore commented May 8, 2019

Any updates on this?

@glocore
Copy link

glocore commented May 8, 2019

@DalbirKaur were you able to solve for this?

@DalbirKaur
Copy link
Author

@platonish, I am not able to get any lead yet.

@janet-rivas
Copy link

I'm having the same issue in android I'm not able to get the URL to make any action
"react": "^16.8.3",
"react-native": "^0.59.2",

@maleking
Copy link

maleking commented May 9, 2019

@DalbirKaur can you attach AndroidManifest.xml file ?

@DalbirKaur
Copy link
Author













<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

<application
  android:name=".MainApplication"
  android:label="@string/app_name"
  android:icon="@mipmap/ic_launcher_round"
  android:allowBackup="false"
  android:theme="@style/AppTheme">
  <activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
      android:screenOrientation="portrait"
    android:windowSoftInputMode="adjustResize"
      android:launchMode="singleTask">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <action android:name="android.intent.action.DOWNLOAD_COMPLETE"/>
        </intent-filter>
      <intent-filter>
          <data android:scheme="http" android:host="MY_HOST_NAME" />
          <action android:name="android.intent.action.VIEW" />
          <category android:name="android.intent.category.BROWSABLE"/>
          <category android:name="android.intent.category.DEFAULT"/>
      </intent-filter>
      <intent-filter android:label="@filter_view_http_gizmos">
          <action android:name="android.intent.action.VIEW" />
          <category android:name="android.intent.category.DEFAULT" />
          <category android:name="android.intent.category.BROWSABLE" />
          <!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
          <data android:scheme="http"
              android:host="www.tdemo.com"
              android:pathPrefix="/td" />
          <!-- note that the leading "/" is required for pathPrefix-->
      </intent-filter>
      <intent-filter android:label="Turn Doctor">
          <action android:name="android.intent.action.VIEW" />
          <category android:name="android.intent.category.DEFAULT" />
          <category android:name="android.intent.category.BROWSABLE" />
          <!-- Accepts URIs that begin with "example://gizmos” -->
          <data android:scheme="example"
              android:host="gizmos" />
      </intent-filter>
  </activity>
  <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
    <meta-data  android:name="com.dieam.reactnativepushnotification.notification_channel_name"
        android:value="YOUR NOTIFICATION CHANNEL NAME"/>
    <meta-data  android:name="com.dieam.reactnativepushnotification.notification_channel_description"
        android:value="YOUR NOTIFICATION CHANNEL DESCRIPTION"/>
    <!-- Change the resource name to your App's accent color - or any other color you want -->
    <meta-data  android:name="com.dieam.reactnativepushnotification.notification_color"
        android:resource="@android:color/white"/>

    <!-- < Only if you're using GCM or localNotificationSchedule() > -->
    <receiver
        android:name="com.google.android.gms.gcm.GcmReceiver"
        android:exported="true"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="${applicationId}" />
        </intent-filter>
    </receiver>
    <!-- < Only if you're using GCM or localNotificationSchedule() > -->

    <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher" />
    <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>
    <service android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationRegistrationService"/>

    <!-- < Only if you're using GCM or localNotificationSchedule() > -->
    <service
        android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationListenerServiceGcm"
        android:exported="false" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        </intent-filter>
    </service>
    <!-- </ Only if you're using GCM or localNotificationSchedule() > -->

    <!-- < Else > -->
    <service
        android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationListenerService"
        android:exported="false" >
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>


    <service android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationActionService" />
    <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationActionHandlerReceiver"
        android:exported="true">
        <intent-filter>
            <action android:name="${applicationId}.firstAction" />
            <action android:name="${applicationId}.secondAction" />
        </intent-filter>
    </receiver>
</application>

@maleking, I have pasted the content of AndroidManifest.xml file of my project. Because I was unable to attach the .xml file.

@glocore
Copy link

glocore commented May 14, 2019

For me, the issue was that although the app would come to the foreground on clicking on the app link (say from an SMS), the callback passed to Linking.addEventListener never got fired.

So what I ended up doing is this: add an AppState listener to check the url from Linking.getInitialURL, and if it is a valid URL, redirect accordingly.

componentDidMount() {
  // triggered when react native boots
  this._checkInitialUrl()

  AppState.addEventListener('change', this._handleAppStateChange)
  // never gets fired on Android, hence useless to me
  // Linking.addEventListener('url', url => console.log('url received: ', url))
}

componentWillUnmount() {
  AppState.removeEventListener('change', this._handleAppStateChange)
}

_handleAppStateChange = async (nextAppState) => {
  if (
    this.state.appState.match(/inactive|background/) &&
    nextAppState === 'active'
  ) {
    this._checkInitialUrl()
  }
  this.setState({ appState: nextAppState })
}

_checkInitialUrl = async () => {
  const url = await this._getInitialUrl()
  this._handleUrl(url)
}

_getInitialUrl = async () => {
  const url = await Linking.getInitialURL()
  return url
}

_handleUrl = (url) => {
  // write your url handling logic here, such as navigation
  console.log('received URL: ', url)
}

@jwaldrip
Copy link

Same issue here on 59.8.

@tranthienhao
Copy link

Does any one have a work around on this? I'm facing the same issue for Android devices.
And @glocore 's solution is not work for me. It will fire the _checkInitialUrl even if I don't click on any link

@apamphilon
Copy link

@tranthienhao I am also wondering this. Does anyone have any light to shed on this? Is this a bug, or does Linking.addEventListener('url', method_name). not work on Android?

@DalbirKaur
Copy link
Author

@apamphilon try the below code.
componentDidMount(){
this._checkInitialUrl()
AppState.addEventListener('change', this._handleAppStateChange)
Linking.getInitialURL().then(async (url) => {
if (url) {
console.log('Initial url is: ' + url);
}
}).catch(err => console.error('An error occurred', err));
}
componentWillUnmount() {
AppState.removeEventListener('change', this._handleAppStateChange)
}

   _handleAppStateChange = async (nextAppState) => {
     if (
       this.state.appState.match(/inactive|background/) &&
       nextAppState === 'active'
     ) {
       this._checkInitialUrl()
     }
     this.setState({ appState: nextAppState })
   }

   _checkInitialUrl = async () => {
     const url = await this._getInitialUrl()
     this._handleUrl(url)
   }

   _getInitialUrl = async () => {
     const url = await Linking.getInitialURL()
     return url
   }

this is working if the app is in background state too.

@apamphilon
Copy link

@DalbirKaur Thanks for the suggestion. I did try and do it this way but found that if the deep link has already been navigated to and then you switch screens and put the app back into the background and then relaunch, the event listener will fire again and navigate to that screen again.

Any thoughts?

@SirCameron
Copy link

for me, the issue with using appState as a workaround is that on iOS Linking.addEventListener('url') will get the latest url sent to the app - this is helpful if the app is used to share URLs. So each time a URL is sent to the app, it receives the correct one. Using appState and getInitialURL you only ever get the first url the app was launched with.

Is there any update on getting Linking.addEventListener('url') working properly on Android?

@ppv94
Copy link

ppv94 commented Sep 3, 2019

I am also facing same issue Linking.addEventListener('url') returns the initial url only, or Linking.getInitialURL() returns null. Linking.removeEventListener('url') doesnt work, how can we remove the existing url and get the latest url.

@Kingsace
Copy link

Does anyone can solve keep getting the old url instead of latest url issue?

@cvarley100
Copy link

Also facing this issue. The event listener fails to fire if the app is not already open.

@CoryWritesCode
Copy link

Same issue, seems like Linking.getInitalURL() works if the app is not yet launched, and Linking.addEventListener('url' callback) works if the app is in foreground but neither seem to work for apps in background state.

@mhavid
Copy link

mhavid commented Sep 2, 2020

// Add Listener to catch a state


componentDidMount() {
   Linking.addEventListener('url', this._handleOpenURL);
},
componentWillUnmount() {
   Linking.removeEventListener('url', this._handleOpenURL);
},
_handleOpenURL(event) {
   console.log(event.url);
}

@Ovidiu-S
Copy link

Is there an update on this issue ? Deep linking is an important feature, and this issue makes it pretty much unusable

@Ovidiu-S
Copy link

So, apparently, it works just fine if you turn off the debugger

@eduinlight
Copy link

eduinlight commented Dec 18, 2020

I give you my hook that works grate on Android and IOS.

import {useEffect, useCallback} from 'react';
import {Linking} from 'react-native';
import useAppState from './useAppState';

const useDeepLink = (callback: (url: string) => void) => {
  const appState = useAppState();

  const handleDeepLink = useCallback(
    link => {
      if (link) {
        const url = typeof link === 'string' ? link : link.url;
        console.log({deeplink: url});

        callback(url);
      }
    },
    [callback],
  );

  useEffect(() => {
    if (appState === 'background') {
      Linking.getInitialURL().then(handleDeepLink);
    }
  }, [appState, handleDeepLink]);

  useEffect(() => {
    Linking.getInitialURL().then(handleDeepLink);

    Linking.addListener('url', handleDeepLink);

    return () => {
      Linking.removeEventListener('url', handleDeepLink);
    };
  }, [handleDeepLink]);
};

export default useDeepLink;

@brianmak3
Copy link

brianmak3 commented Mar 5, 2021

This worked for me for both background and foreground
`
import React, { useEffect, useCallback, useRef, Fragment } from 'react';
import { Linking, AppState } from 'react-native';

const useDeepLink = (props) => {
const appState = useRef(AppState.currentState),
{ callback } = props,
handleDeepLink = useCallback(
link => {
if (link) {
const url = typeof link === 'string' ? link : link.url;
callback(url);
}
},
[],
);

useEffect(() => {
    if (appState === 'background') {
        Linking.getInitialURL().then(handleDeepLink);
    }
}, [appState, handleDeepLink]);

useEffect(() => {
    Linking.getInitialURL().then(handleDeepLink);

    Linking.addListener('url', handleDeepLink);

    return () => {
        Linking.removeEventListener('url', handleDeepLink);
    };
}, [handleDeepLink]);
return (
    <Fragment />
)

};

export default useDeepLink;
`

@i-sbaral
Copy link

Does anyone can solve keep getting the old url instead of latest url issue?

Hi @Kingsace Were you able to solve this issue by any chance? I am facing the same issue where Linking.getInitialUrl() gets a older url on some samsung devices.

@eduinlight
Copy link

eduinlight commented Apr 21, 2021

I suggest you to follow the rn-firebase guide to do it right. I do that and my hook ends as follow:

const useDeepLink = (callback: (url: string) => void) => {
  const handleDynamicLink = useCallback(
    (link: any) => {
      console.log({link});
      if (link && link.url) {
        callback(link.url);
      }
    },
    [callback],
  );

  useEffect(() => {
    dynamicLinks()
      .getInitialLink()
      .then(handleDynamicLink);

    const unsubscribe = dynamicLinks().onLink(handleDynamicLink);

    return () => unsubscribe();
  }, [handleDynamicLink]);
};

@eduinlight
Copy link

eduinlight commented Apr 21, 2021 via email

@Invertisment
Copy link

Invertisment commented May 1, 2021

are you added

<activity
  android:name=".MainActivity"
  android:launchMode="singleTask">

in AndroidManifest.xml ?
(https://facebook.github.io/react-native/docs/linking)

This applies only to the existing instances of the activity.
It's fine to have multiple activity instances in some cases.

This is the text from the link that you've given: "If you wish to receive the intent in an existing instance of MainActivity,<...>".

In other words the developer chooses whether he wants multiple instances of the app activity or only one.

So it's not related to this issue.

@anastely
Copy link

anastely commented May 2, 2021

I give you my hook that works grate on Android and IOS.

import {useEffect, useCallback} from 'react';
import {Linking} from 'react-native';
import useAppState from './useAppState';

const useDeepLink = (callback: (url: string) => void) => {
  const appState = useAppState();

  const handleDeepLink = useCallback(
    link => {
      if (link) {
        const url = typeof link === 'string' ? link : link.url;
        console.log({deeplink: url});

        callback(url);
      }
    },
    [callback],
  );

  useEffect(() => {
    if (appState === 'background') {
      Linking.getInitialURL().then(handleDeepLink);
    }
  }, [appState, handleDeepLink]);

  useEffect(() => {
    Linking.getInitialURL().then(handleDeepLink);

    Linking.addListener('url', handleDeepLink);

    return () => {
      Linking.removeEventListener('url', handleDeepLink);
    };
  }, [handleDeepLink]);
};

export default useDeepLink;

Can you please explain why this hook works?

@Amol-B-Patil
Copy link

Amol-B-Patil commented May 3, 2021

Hello Everyone!

The deep linking is working as expected for me even the app is in background. Please check the below specifications.

Node Version : v12.18.x OR Greater
NPM Version : v6.14.x OR Greater
react-native-cli : 2.0.1
react-native : 0.63.x OR Greater

Please check if you have added below line in your AppDelegate.m.

#import <React/RCTLinkingManager.h>

It must be added above #ifdef FB_SONARKIT_ENABLED line. Adding it below this line will cause failing of build while Archiving it for release.

Please check if you have added below code in your AppDelegate.m which is responsible for deep linking.

- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
return [RCTLinkingManager application:application openURL:url options:options];
}

It will work for app cold boot, but it will not work if your app is in background. For this, you need to add below code in your AppDelegate.m

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id> *_Nullable))restorationHandler {
return [RCTLinkingManager application:application
continueUserActivity:userActivity
restorationHandler:restorationHandler];
}

This should work irrespective of your AppState: active **OR** background.

This worked for me as expected! Give it a try. This is should definitely work.

Thanks in advance!

@saranya20-t
Copy link

@devanshu23598

try to add this code below in you MainActivity.java

  import android.content.Intent;
  import android.net.Uri;
  import com.facebook.react.bridge.Arguments;
  import com.facebook.react.bridge.WritableMap;
  import com.facebook.react.modules.core.DeviceEventManagerModule;
  ...
  @Override
  public void onNewIntent(Intent intent) {
      if (intent.getData() != null) {
        Uri deepLinkURL = intent.getData();
        // note deeplink_identifier means the identity that you register in the manifest.
        if (deepLinkURL.toString().contains("deeplink_identifier")) {
            // Create map for params
            WritableMap event = Arguments.createMap();
            // Put data to map
            event.putString("url", deepLinkURL.toString());
            // Get EventEmitter from context and send event thanks to it
            getReactInstanceManager().getCurrentReactContext()
                    .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
                    .emit("url", event);
        } else {
           // to handle other deeplink that not related to the defined deeplink identifier such as notification
           setIntent(intent);
        }
      } 
  }

I get an error as "Cannot resolve method getReactInstanceManager". Can you please help me to fix this issue?

@rviteri
Copy link

rviteri commented Sep 1, 2021

For the ones that have this problem in iOS when the app is in the background (so not a cold start), my problem was that Firebase was overriding the continueUserActivity call with its own inside the GLUAppDelegateSwizzler.m. The way I fixed it was by adding this to the info.plist file:

<key>FirebaseAppDelegateProxyEnabled</key>
<false/>

@SamanthaChhoeu
Copy link

Does anyone can solve keep getting the old url instead of latest url issue?

Hi @Kingsace Were you able to solve this issue by any chance? I am facing the same issue where Linking.getInitialUrl() gets a older url on some samsung devices.

We are experiencing this issue on react-native 0.63.4

@stale
Copy link

stale bot commented Jan 9, 2022

Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require the community's attention? This issue may be closed if no further activity occurs. You may also label this issue as a "Discussion" or add it to the "Backlog" and I will leave it open. Thank you for your contributions.

@stale stale bot added the Stale There has been a lack of activity on this issue and it may be closed soon. label Jan 9, 2022
@zainkhas
Copy link

Turning off the debugger worked for me.

@xilin
Copy link

xilin commented Apr 7, 2022

For the ones that have this problem in iOS when the app is in the background (so not a cold start), my problem was that Firebase was overriding the continueUserActivity call with its own inside the GLUAppDelegateSwizzler.m. The way I fixed it was by adding this to the info.plist file:

<key>FirebaseAppDelegateProxyEnabled</key>
<false/>

For anyone who is interested in the swizzler, its correct filename is GULAppDelegateSwizzler.m

@H4mxa
Copy link

H4mxa commented Nov 1, 2022

Facing the same issue only on android 12, any updates?

@git-sparrow
Copy link

Facing the same issue on Android.
The disabling debugger doesn't help.
The suggestion to access the URL with AppState & Linking.getInitialURL() doesn't help either.

@velancio
Copy link

velancio commented Feb 1, 2023

Piggy backing on @RZulfikri suggestion for android I just had to add:

 @Override
  public void onNewIntent(Intent intent) {
    setIntent(intent);
  }

in the MainActivity.java

And handle deep linking in the app's root component:

import React, { useState, useEffect } from 'react';
import { AppState, Linking } from 'react-native';

const DeepLinkHandler = () => {
  const [appState, setAppState] = useState(AppState.currentState);

  const handleAppStateChange = nextAppState => {
    if (
      appState.match(/inactive|background/) &&
      nextAppState === 'active'
    ) {
      // app has come to the foreground
      Linking.getInitialURL().then(url => {
        // handle the deep link
      });
    }
    setAppState(nextAppState);
  };

  useEffect(() => {
    AppState.addEventListener('change', handleAppStateChange);

    return () => {
      AppState.removeEventListener('change', handleAppStateChange);
    };
  }, []);

  return null;
};

export default DeepLinkHandler;

This worked for me!!

@github-actions github-actions bot removed the Stale There has been a lack of activity on this issue and it may be closed soon. label Mar 10, 2023
@neel-turbo
Copy link

=======>>>Method to catch Deep link when App opens <<<=======
useEffect(() => {
// Get the deep link used to open the app
const getUrl = async () => {
const universalLink = await Linking.getInitialURL();

  if (universalLink === null) {
    return;
  }
  //handle universal link
  if (universalLink.includes('loginsuccess')) {
    console.log('INSIDE-------loginsuccess--useEffect---One');
    Alert.alert(initialUrl);
  }
};

getUrl();

},[]);

=======>>>Method to catch Deep link when App is In Background <<<=======

useEffect(() => {

const urlListener = Linking.addEventListener('url', (url: object) => {
  // console.log('this is the url---2: ', url.url);

  let urlString = JSON.stringify(url.url);

  if (urlString === null) {
    return;
  }

  if (urlString.includes('loginsuccess')) {
    Alert.alert(urlString);
    
  }
  // Alert.alert(JSON.stringify(url));
  console.log('INSIDE-------loginsuccess----useEffect---Two');
});

return () => {
  urlListener.remove();
};

}, []);

@abreuthrj-coclub
Copy link

@devanshu23598

try to add this code below in you MainActivity.java

  import android.content.Intent;
  import android.net.Uri;
  import com.facebook.react.bridge.Arguments;
  import com.facebook.react.bridge.WritableMap;
  import com.facebook.react.modules.core.DeviceEventManagerModule;
  ...
  @Override
  public void onNewIntent(Intent intent) {
      if (intent.getData() != null) {
        Uri deepLinkURL = intent.getData();
        // note deeplink_identifier means the identity that you register in the manifest.
        if (deepLinkURL.toString().contains("deeplink_identifier")) {
            // Create map for params
            WritableMap event = Arguments.createMap();
            // Put data to map
            event.putString("url", deepLinkURL.toString());
            // Get EventEmitter from context and send event thanks to it
            getReactInstanceManager().getCurrentReactContext()
                    .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
                    .emit("url", event);
        } else {
           // to handle other deeplink that not related to the defined deeplink identifier such as notification
           setIntent(intent);
        }
      } 
  }

This saved me! Thx

@github-actions
Copy link

This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 7 days.

@github-actions github-actions bot added the Stale There has been a lack of activity on this issue and it may be closed soon. label Oct 23, 2023
@github-actions
Copy link

This issue was closed because it has been stalled for 7 days with no activity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API: Linking Bug Newer Patch Available Platform: Linux Building on Linux. Stale There has been a lack of activity on this issue and it may be closed soon.
Projects
None yet
Development

No branches or pull requests