Problem Background
I integrated Revenuecat with a Flutter application I was working on since a long time. After following all the documentation steps accurately I ran the app but Revenuecat wasn't fetching any products and gave me a store configuration error. Even after trying through all the possible solutions, faqs, forum issues, github issues, my offering was still empty with no products being fetched.
I then created a new product and attached it to the offering. This product was successfully fetched. But others were still missing. I realized the only difference was this new product was set as backwards compatible and when I attached it to other packages in my offering, they all started being fetched.
I then marked one of my older products as backward compatible and it got fetched as well. However, since in my first subscription I had two base plans and play console only let me mark one of them backwards compatible the issue was not entirely solved.
I double-checked my Revenuecat package version to make sure it was greater than v6.0.0, which introduced Billing SDK v6 so the problem shouldn't have been there. Even ran flutter clean and rebuilt the app.
Analysis
Firstly, I narrowed down the problem to backwards compatibility. Secondly, I suspected that for some reason my project was not using the Billing SDK v6. Hence, the problem. Since, I had been working on the project for a long time, I guessed that the gradle version might be the reason for this.
Solution
I upgraded my gradle plugin and build tool to the latest version available. Bumped up my compileSdk to 34, ran clean and rebuilt the apk. The result?
It started working perfectly fine and all the products got fetched perfectly. Since, I didn't change 1 bit of code, the issue was solely my gradle version.
Recommendation
My recommendation is to include this as a possible solution to try for such issue, somewhere in the docs or faqs. Eventhough I solved the problem, it took me 5 days trying to narrow it down. I would have gotten there much sooner if somewhere it was recommended to try this.
A lot of devs have been working on their projects since a long time ago and integrate RC much later on in their projects. They never bother touching gradle stuff, which might be the reason they face this issue commonly. Mentioning it as a thing to try might be of help.