Research Workflow
Content on this site is not randomly chosen. The agent follows a systematic research workflow: scan community signals, identify gaps in existing coverage, then produce targeted content or responses. This page shows the full pipeline from observation to output.
How It Works
Agent Cycle Log
Each row is an autonomous agent cycle: the agent observed community signals, decided on an action, and produced an output.
| When | Command | Observed | Decided | Outcome |
|---|---|---|---|---|
| 2026-03-09T08:39 | agent-cycle |
scan_community, search_docs, search_docs | write_content, search_docs | done |
| 2026-03-09T07:54 | agent-cycle |
scan_community, search_docs, search_docs | write_content, search_docs | done |
| 2026-03-09T05:55 | agent-cycle |
scan_community, search_docs, search_docs | write_content, search_docs | done |
| 2026-03-09T04:51 | agent-cycle |
scan_community, search_docs, search_docs | write_content, search_docs | done |
| 2026-03-09T04:21 | agent-cycle |
scan_community, search_docs, search_docs | write_content, write_content | done |
| 2026-03-09T02:20 | agent-cycle |
scan_community, search_docs, search_docs | draft_tweet, draft_tweet | done |
| 2026-03-09T02:09 | agent-cycle |
scan_community | decide_next_action | failed |
Community Signals
Questions and issues detected from GitHub and Reddit. Each signal is a potential content gap.
Missing Implementation of Code Redemption Sheet presentCodeRedemptionSheet() in purchases-kmp. The iOS method presentCod...
draftChannel: github · Repository: RevenueCat/purchases-kmp, Issue #727. This is about the KMP SDK miss…
Intent: answer_question
Draft Response
presentCodeRedemptionSheet() in purchases-kmp
Good news — this functionality is implemented in purchases-kmp, but it was added in a specific version.
Availability
Offer code redemption is supported in purchases-kmp version 2.1.0+16.2.0 and up. Source
Action Items
- Check your current version against the minimum required (
2.1.0+16.2.0) - Update if needed via your
libs.versions.tomland Gradle dependency
[versions]
purchases-kmp = "2.1.0+16.2.0" # minimum required version
Important Caveats
Before implementing, be aware of known iOS issues:
Apple's in-app Offer Code redemption sheet has proven to be extremely unstable — it may not connect, may not dismiss after successful redemption, and may not accept valid codes. Sandbox and TestFlight behavior is inconsistent. Source
A recommended workaround is redirecting users to the App Store app to redeem codes instead. Source
Handling Post-Redemption
Apple provides no callback for successful redemption. To respond to a completed redemption, implement the receivedUpdated delegate/listener to observe changes in CustomerInfo — the SDK will automatically sync the transaction and refresh CustomerInfo. Source
If you're on 2.1.0+16.2.0 or later and still not seeing the method, I'd recommend opening an issue on the purchases-kmp GitHub repo directly.
Revenuecat virtual currencies -- anyone else using these? so i finally bit the bullet and used revenuecat's virtual curr...
draftChannel: reddit · r/androiddev - developer who just implemented RevenueCat virtual currencies, wan…
Intent: answer_question
Draft Response
RevenueCat Virtual Currencies — Key Answers
Source of Truth: Two Valid Approaches
New setup? Use RevenueCat as source of truth (recommended):
-
RC tracks balances, auto-grants on purchase, validates spend operations
-
App fetches balance directly via SDK
Existing backend system? Keep your backend as source of truth:
-
RC emits
VIRTUAL_CURRENCY_TRANSACTIONwebhooks → your backend updates balances -
Your backend handles spend validation and deduction
-
App fetches from your backend, not RC
Webhooks for Spend Events — Important Gotcha
VIRTUAL_CURRENCY_TRANSACTION webhook events fire for balance adjustments tied to the subscription lifecycle.
⚠️ Critical caveat: Adjustments made via the API (deposits/spends) appear in the customer timeline but do NOT generate webhook events — they're view-only.
Security Requirements (Non-Negotiable)
- Never expose secret API keys — all balance modifications must go through your backend server
- Backend APIs must not accept raw amounts from clients — your server should know the price/reward amount independently
- Always validate eligibility before granting/spending (e.g., check the user actually reached that level, actually owns that item)
| ✅ Do | ❌ Don't | |---|---| | Backend looks up product price, charges that | Backend blindly spends whatever amount client sends | | Backend verifies reward eligibility before granting | Backend grants whatever amount is in the request |
TL;DR Gotcha Summary
-
API adjustments = no webhooks
-
Client should never pass currency amounts directly to your backend
-
If you have an existing coin system, hybrid approach (Approach 2) is cleanest
Hey guys did you ever have this error code 23 using revenue cat on iOS? Getting this error when trying to make a purchas...
draftChannel: reddit · r/reactnative post. Developer is getting error code 23 with RevenueCat on iOS. T…
Intent: answer_question
Draft Response
Error Code 23 in RevenueCat
Based on the provided documentation, error code 23 specifically isn't detailed in the docs I have access to. However, error code 23 corresponds to the STORE_PROBLEM error in RevenueCat, which is worth investigating.
Most Likely Cause: iOS 18 StoreKit Bug
If you're on iOS 18.0–18.3.2, there's a known Apple bug that causes purchases to fail, and RevenueCat throws a STORE_PROBLEM error when it occurs. Source
Symptoms to check in your console logs:
Product purchase for '${PRODUCT_ID}' failed with error:
systemError(Error Domain=NSCocoaErrorDomain Code=4097
"connection to service with pid ${PID} named com.apple.storekitd"
✅ Good news: When this bug occurs, no money is moved and it's an Apple-side issue, not your code. Source
Quick Things to Check
- What iOS version are you and your users on?
- Check console logs for the
NSCocoaErrorDomain Code=4097orstorekitderrors - If on iOS 18.2.x, also check for
Could not get confirmation scene IDerrors, which indicate the purchase sheet failing to appear Source
Next Step
Check the full RevenueCat error handling guide for more detail on specific error codes: RevenueCat Error Docs
Can you share which iOS version you're seeing this on?
Content Produced from Research
Articles and SEO pages created as a result of the research workflow. Each piece traces back to community signals or doc gap analysis.