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

Simultaneous Remote Config fetch is not allowed any more #3802

Closed
azubala opened this issue Sep 9, 2019 · 14 comments
Closed

Simultaneous Remote Config fetch is not allowed any more #3802

azubala opened this issue Sep 9, 2019 · 14 comments
Assignees
Milestone

Comments

@azubala
Copy link

azubala commented Sep 9, 2019

[READ] Step 1: Are you in the right place?

  • For issues or feature requests related to the code in this repository
    file a Github issue.
    • If this is a feature request make sure the issue title starts with "FR:".
  • For general technical questions, post a question on StackOverflow
    with the firebase tag.
  • For general Firebase discussion, use the firebase-talk
    google group.
  • For help troubleshooting your application that does not fall under one
    of the above categories, reach out to the personalized
    Firebase support channel.

[REQUIRED] Step 2: Describe your environment

  • Xcode version: 10.2.1 Build version 10E1001
  • Firebase SDK version: 6.4.0
  • Firebase Component: Remote Config
  • Component version: 6.4.0

[REQUIRED] Step 3: Describe the problem

Steps to reproduce:

Our application uses heavily Remote Config. One important case is when new user launches application for the first time. Upon app startup we request Remote Config to serve the right content tailored for the user. However, during that initial fetch we might learn (as async callback) about user premium status or that his coming from some ad campaign. This is important information and so we need to fetch Remote Config with updated user properties which significantly changes what should be served.

When we used 5.20.2 version we just simply request another Remote Config fetch and it was handled in parallel to the initial one. We discarded 1st RC fetch and continue app execution with what we received from 2nd RC fetch.

However, since we updated Firebase to 6.4.0 our logic is no longer valid since we are getting errors:

Error Domain=com.google.remoteconfig.ErrorDomain Code=-114 "(null)" UserInfo={FetchError=Duplicate request while the previous one is pending})

Does this mean that simultaneous Remote Config fetch are not allowed any more?

If that's the case, it sounds like we need a way to cancel Remote Config fetch in order to correctly fetch when one is ongoing (we submitted feature request: Case 00003839: Cancel ongoing Remote Config fetch).

Based on our research, when we hit the aforementioned error, the 2nd RC fetch is just ignored, so our app ends up with results from initial fetch.

@google-oss-bot

This comment has been minimized.

@dmandar
Copy link
Contributor

dmandar commented Sep 9, 2019

Hi, disabling duplicate requests has been by design, and might not have been working properly in the previous version. For your purpose, looks like you can do the following:

  1. Set the minimumFetchInterval to 0.
  2. In the fetch completion handler, initiate a second fetch call to update the user properties.

Please reopen if this does not work for you.

@dmandar dmandar closed this as completed Sep 9, 2019
@josevictor1
Copy link

It still happens on version 6.7.0.

@paulb777
Copy link
Member

Latest Firebase release is 6.8.1

@josevictor1
Copy link

josevictor1 commented Sep 19, 2019

I update now, and the problem remains. Log:
app[246:5058] 6.8.1 - [Firebase/RemoteConfig][I-RCN000053] A fetch is already in progress. Ignoring duplicate request.

@paulb777
Copy link
Member

@josevictor1 Did you see the comment above?

@josevictor1
Copy link

josevictor1 commented Sep 19, 2019

Hi, disabling duplicate requests has been by design, and might not have been working properly in the previous version. For your purpose, looks like you can do the following:

  1. Set the minimumFetchInterval to 0.
  2. In the fetch completion handler, initiate a second fetch call to update the user properties.

Please reopen if this does not work for you.

Is this one? So I've tried this solution but still not working. @paulb777

@AD-Paladins
Copy link

Same for me, Firebase (6.9.0) and FirebaseFirestore (1.5.1). I still have the Error Domain=com.google.remoteconfig.ErrorDomain Code=-114 "(null)" UserInfo={FetchError=Duplicate request while the previous one is pending}) :/

@morganchen12 morganchen12 reopened this Sep 30, 2019
@morganchen12
Copy link
Contributor

Can either of you repro this issue in the remote config sample?

@dmandar
Copy link
Contributor

dmandar commented Oct 1, 2019

@josevictor1 can you elaborate what is not working for you? You should not be seeing "Duplicate request.." if you are making the second fetch call after the completion of the first fetch call.

@josevictor1
Copy link

josevictor1 commented Oct 2, 2019

@dmandar I'm getting the same error as @titopalito. Optional(Error Domain=com.google.remoteconfig.ErrorDomain Code=-114 "(null)" UserInfo={FetchError=Duplicate request while the previous one is pending}).

About the second fetch call after the completion:

remoteConfig.fetchAndActivate(completionHandler: { (status, error) in
             remoteConfig.fetch(withExpirationDuration: 5) { (status, error) in
                
            }
  })

I've tried this, but still not working.

@dmandar
Copy link
Contributor

dmandar commented Oct 8, 2019

Thanks @josevictor1 for confirming. Investigating.

@iRILLLL
Copy link

iRILLLL commented Jan 16, 2020

hi guys, i have same error message. spend hours and still not solved.

any advices how to solve that error?

@dmandar
Copy link
Contributor

dmandar commented Feb 7, 2020

Hi..can folks test once fix #4844 is out in the next release of Firebase? Also, to reiterate, if any second follow-up fetch request needs to be made, it needs to happen only in the completion handler of the first request.

@paulb777 paulb777 added this to the M64 - 6.17.0 milestone Feb 7, 2020
@firebase firebase locked and limited conversation to collaborators Mar 13, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.