[{"data":1,"prerenderedAt":691},["ShallowReactive",2],{"navigation_docs":3,"-limits-troubleshooting":233,"-limits-troubleshooting-surround":686},[4,36,67,122,187,207,223],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":35},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,15,20,25,30],{"title":11,"path":12,"stem":13,"icon":14},"What is Rabolic","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-book-open",{"title":16,"path":17,"stem":18,"icon":19},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F2.quickstart","i-lucide-zap",{"title":21,"path":22,"stem":23,"icon":24},"Keys","\u002Fgetting-started\u002Fkeys","1.getting-started\u002F3.keys","i-lucide-key-round",{"title":26,"path":27,"stem":28,"icon":29},"Setup CLI","\u002Fgetting-started\u002Fsetup-cli","1.getting-started\u002F4.setup-cli","i-lucide-terminal",{"title":31,"path":32,"stem":33,"icon":34},"Trial","\u002Fgetting-started\u002Ftrial","1.getting-started\u002F5.trial","i-lucide-hourglass",false,{"title":37,"icon":38,"path":39,"stem":40,"children":41,"page":35},"SDKs and API","i-lucide-code","\u002Fsdks","2.sdks",[42,47,52,57,62],{"title":43,"path":44,"stem":45,"icon":46},"Web","\u002Fsdks\u002Fweb","2.sdks\u002F1.web","i-lucide-globe",{"title":48,"path":49,"stem":50,"icon":51},"React Native and Expo","\u002Fsdks\u002Freact-native","2.sdks\u002F2.react-native","i-simple-icons-react",{"title":53,"path":54,"stem":55,"icon":56},"Flutter","\u002Fsdks\u002Fflutter","2.sdks\u002F3.flutter","i-simple-icons-flutter",{"title":58,"path":59,"stem":60,"icon":61},"Node.js","\u002Fsdks\u002Fnode","2.sdks\u002F4.node","i-simple-icons-nodedotjs",{"title":63,"path":64,"stem":65,"icon":66},"Ingest HTTP API","\u002Fsdks\u002Fhttp-api","2.sdks\u002F5.http-api","i-lucide-send",{"title":68,"icon":69,"path":70,"stem":71,"children":72,"page":35},"Concepts","i-lucide-lightbulb","\u002Fconcepts","3.concepts",[73,77,82,87,92,97,102,107,112,117],{"title":74,"path":75,"stem":76,"icon":19},"Events","\u002Fconcepts\u002Fevents","3.concepts\u002F01.events",{"title":78,"path":79,"stem":80,"icon":81},"Identity","\u002Fconcepts\u002Fidentity","3.concepts\u002F02.identity","i-lucide-fingerprint",{"title":83,"path":84,"stem":85,"icon":86},"Sessions","\u002Fconcepts\u002Fsessions","3.concepts\u002F03.sessions","i-lucide-activity",{"title":88,"path":89,"stem":90,"icon":91},"Key events and conversions","\u002Fconcepts\u002Fkey-events-and-conversions","3.concepts\u002F04.key-events-and-conversions","i-lucide-star",{"title":93,"path":94,"stem":95,"icon":96},"Funnels","\u002Fconcepts\u002Ffunnels","3.concepts\u002F05.funnels","i-lucide-filter",{"title":98,"path":99,"stem":100,"icon":101},"Journeys","\u002Fconcepts\u002Fjourneys","3.concepts\u002F06.journeys","i-lucide-route",{"title":103,"path":104,"stem":105,"icon":106},"Retention","\u002Fconcepts\u002Fretention","3.concepts\u002F07.retention","i-lucide-repeat",{"title":108,"path":109,"stem":110,"icon":111},"Revenue and attribution","\u002Fconcepts\u002Frevenue-and-attribution","3.concepts\u002F08.revenue-and-attribution","i-lucide-wallet",{"title":113,"path":114,"stem":115,"icon":116},"Consent and privacy","\u002Fconcepts\u002Fprivacy","3.concepts\u002F09.privacy","i-lucide-shield-check",{"title":118,"path":119,"stem":120,"icon":121},"Data retention","\u002Fconcepts\u002Fdata-retention","3.concepts\u002F10.data-retention","i-lucide-archive",{"title":123,"icon":124,"path":125,"stem":126,"children":127,"page":35},"Using the dashboard","i-lucide-layout-dashboard","\u002Fdashboard","4.dashboard",[128,133,138,143,146,151,154,157,160,163,167,172,177,182],{"title":129,"path":130,"stem":131,"icon":132},"Overview","\u002Fdashboard\u002Foverview","4.dashboard\u002F01.overview","i-lucide-gauge",{"title":134,"path":135,"stem":136,"icon":137},"Live","\u002Fdashboard\u002Flive","4.dashboard\u002F02.live","i-lucide-radio",{"title":139,"path":140,"stem":141,"icon":142},"Analytics","\u002Fdashboard\u002Fanalytics","4.dashboard\u002F03.analytics","i-lucide-bar-chart-3",{"title":74,"path":144,"stem":145,"icon":19},"\u002Fdashboard\u002Fevents","4.dashboard\u002F04.events",{"title":147,"path":148,"stem":149,"icon":150},"Users","\u002Fdashboard\u002Fusers","4.dashboard\u002F05.users","i-lucide-users",{"title":83,"path":152,"stem":153,"icon":86},"\u002Fdashboard\u002Fsessions","4.dashboard\u002F06.sessions",{"title":93,"path":155,"stem":156,"icon":96},"\u002Fdashboard\u002Ffunnels","4.dashboard\u002F07.funnels",{"title":98,"path":158,"stem":159,"icon":101},"\u002Fdashboard\u002Fjourneys","4.dashboard\u002F08.journeys",{"title":103,"path":161,"stem":162,"icon":106},"\u002Fdashboard\u002Fretention","4.dashboard\u002F09.retention",{"title":164,"path":165,"stem":166,"icon":111},"Revenue","\u002Fdashboard\u002Frevenue","4.dashboard\u002F10.revenue",{"title":168,"path":169,"stem":170,"icon":171},"Alerts","\u002Fdashboard\u002Falerts","4.dashboard\u002F11.alerts","i-lucide-bell",{"title":173,"path":174,"stem":175,"icon":176},"Integrations","\u002Fdashboard\u002Fintegrations","4.dashboard\u002F12.integrations","i-lucide-plug-zap",{"title":178,"path":179,"stem":180,"icon":181},"Project settings","\u002Fdashboard\u002Fproject-settings","4.dashboard\u002F13.project-settings","i-lucide-settings",{"title":183,"path":184,"stem":185,"icon":186},"Organizations and roles","\u002Fdashboard\u002Forganizations-and-roles","4.dashboard\u002F14.organizations-and-roles","i-lucide-building-2",{"title":188,"icon":189,"path":190,"stem":191,"children":192,"page":35},"Plans and billing","i-lucide-credit-card","\u002Fbilling","5.billing",[193,198,202],{"title":194,"path":195,"stem":196,"icon":197},"Plans","\u002Fbilling\u002Fplans","5.billing\u002F1.plans","i-lucide-tags",{"title":199,"path":200,"stem":201,"icon":132},"Usage and overage","\u002Fbilling\u002Fusage-and-overage","5.billing\u002F2.usage-and-overage",{"title":203,"path":204,"stem":205,"icon":206},"Read-only and deletion","\u002Fbilling\u002Fread-only-and-deletion","5.billing\u002F3.read-only-and-deletion","i-lucide-lock",{"title":208,"icon":209,"path":210,"stem":211,"children":212,"page":35},"Limits and troubleshooting","i-lucide-life-buoy","\u002Flimits","6.limits",[213,218],{"title":214,"path":215,"stem":216,"icon":217},"Limits","\u002Flimits\u002Flimits","6.limits\u002F1.limits","i-lucide-ruler",{"title":219,"path":220,"stem":221,"icon":222},"Events not showing","\u002Flimits\u002Ftroubleshooting","6.limits\u002F2.troubleshooting","i-lucide-search-check",{"title":224,"icon":225,"path":226,"stem":227,"children":228,"page":35},"AI connector","i-lucide-sparkles","\u002Fai","7.ai",[229],{"title":224,"path":230,"stem":231,"icon":232},"\u002Fai\u002Fconnector","7.ai\u002F1.connector","i-lucide-plug",{"id":234,"title":219,"body":235,"description":677,"extension":678,"links":679,"meta":680,"navigation":681,"path":220,"seo":682,"stem":221,"__hash__":685},"docs\u002F6.limits\u002F2.troubleshooting.md",{"type":236,"value":237,"toc":663},"minimark",[238,242,247,254,258,261,387,390,415,419,426,430,468,472,490,494,497,530,533,537,540,554,562,566,571,603,610,614,621,625,644,648,659],[239,240,241],"p",{},"Work through this list in order. Most problems are one of the first five.",[243,244,246],"h2",{"id":245},"_1-look-at-live-first","1. Look at Live first",[239,248,249,250,253],{},"Open ",[251,252,134],"strong",{},". It shows the newest events within seconds and refreshes every 10 seconds. If an event is on Live, it arrived: the problem is a report filter, not the SDK.",[243,255,257],{"id":256},"_2-turn-on-debug-mode","2. Turn on debug mode",[239,259,260],{},"Every SDK logs each call and why an event was dropped:",[262,263,264,305,355],"code-group",{},[265,266,272],"pre",{"className":267,"code":268,"filename":269,"language":270,"meta":271,"style":271},"language-ts shiki shiki-themes github-light-default github-light-default github-dark-default","rabolic.init({ projectKey: 'rb_pub_…', debug: true })\n","Web and React Native","ts","",[273,274,275],"code",{"__ignoreMap":271},[276,277,280,284,288,291,295,298,302],"span",{"class":278,"line":279},"line",1,[276,281,283],{"class":282},"s_bOF","rabolic.",[276,285,287],{"class":286},"sd69k","init",[276,289,290],{"class":282},"({ projectKey: ",[276,292,294],{"class":293},"s-BGO","'rb_pub_…'",[276,296,297],{"class":282},", debug: ",[276,299,301],{"class":300},"sDkKp","true",[276,303,304],{"class":282}," })\n",[265,306,310],{"className":307,"code":308,"filename":53,"language":309,"meta":271,"style":271},"language-dart shiki shiki-themes github-light-default github-light-default github-dark-default","await Rabolic.init(const RabolicConfig(projectKey: 'rb_pub_…', debug: true));\n","dart",[273,311,312],{"__ignoreMap":271},[276,313,314,318,321,324,326,329,332,335,338,341,344,347,349,352],{"class":278,"line":279},[276,315,317],{"class":316},"s5nWI","await",[276,319,320],{"class":300}," Rabolic",[276,322,323],{"class":282},".",[276,325,287],{"class":286},[276,327,328],{"class":282},"(",[276,330,331],{"class":316},"const",[276,333,334],{"class":300}," RabolicConfig",[276,336,337],{"class":282},"(projectKey",[276,339,340],{"class":316},":",[276,342,343],{"class":293}," 'rb_pub_…'",[276,345,346],{"class":282},", debug",[276,348,340],{"class":316},[276,350,351],{"class":300}," true",[276,353,354],{"class":282},"));\n",[265,356,358],{"className":267,"code":357,"filename":58,"language":270,"meta":271,"style":271},"const rabolic = new Rabolic({ secretKey: process.env.RABOLIC_SECRET_KEY, debug: true })\n",[273,359,360],{"__ignoreMap":271},[276,361,362,364,367,370,373,375,378,381,383,385],{"class":278,"line":279},[276,363,331],{"class":316},[276,365,366],{"class":300}," rabolic",[276,368,369],{"class":316}," =",[276,371,372],{"class":316}," new",[276,374,320],{"class":286},[276,376,377],{"class":282},"({ secretKey: process.env.",[276,379,380],{"class":300},"RABOLIC_SECRET_KEY",[276,382,297],{"class":282},[276,384,301],{"class":300},[276,386,304],{"class":282},[239,388,389],{},"To test a key and host without your app, run:",[265,391,396],{"className":392,"code":393,"filename":394,"language":395,"meta":271,"style":271},"language-bash shiki shiki-themes github-light-default github-light-default github-dark-default","npx rabolic check --key rb_pub_…\n","Terminal","bash",[273,397,398],{"__ignoreMap":271},[276,399,400,404,406,409,412],{"class":278,"line":279},[276,401,403],{"class":402},"sQJ0q","npx",[276,405,366],{"class":293},[276,407,408],{"class":293}," check",[276,410,411],{"class":300}," --key",[276,413,414],{"class":293}," rb_pub_…\n",[243,416,418],{"id":417},"_3-check-the-environment-filter","3. Check the environment filter",[239,420,421,422,425],{},"The filter bar shows ",[251,423,424],{},"Production"," by default. Events take their environment from the key: a staging or development key sends to Staging or Development. Switch the environment select, or use a production key.",[243,427,429],{"id":428},"_4-check-the-key","4. Check the key",[431,432,433,444,458],"ul",{},[434,435,436,439,440,443],"li",{},[251,437,438],{},"The right project?"," Each project has its own keys. Copy the key again from ",[251,441,442],{},"Integrations → API keys"," in the project you're looking at.",[434,445,446,449,450,453,454,457],{},[251,447,448],{},"The right kind?"," Browsers and apps need a publishable key (",[273,451,452],{},"rb_pub_","). The web, React Native and Flutter SDKs refuse secret keys; the Node.js SDK refuses publishable keys. With ",[273,455,456],{},"debug: true",", the SDK says so.",[434,459,460,463,464,467],{},[251,461,462],{},"Revoked?"," A revoked key gets ",[273,465,466],{},"401 invalid_key",", and the SDK stops sending until the app restarts.",[243,469,471],{"id":470},"_5-check-consent","5. Check consent",[239,473,474,475,478,479,482,483,486,487,323],{},"With ",[273,476,477],{},"consent: 'pending'",", the SDK keeps events in memory and sends nothing until ",[273,480,481],{},"setConsent('granted')",". With ",[273,484,485],{},"'denied'",", it drops them. Make sure your consent banner calls ",[273,488,489],{},"setConsent()",[243,491,493],{"id":492},"_6-check-what-reports-leave-out","6. Check what reports leave out",[239,495,496],{},"Reports leave out:",[431,498,499,513,519],{},[434,500,501,504,505,508,509,512],{},[251,502,503],{},"bots,"," when ",[251,506,507],{},"Bot filtering"," is on in ",[510,511,178],"a",{"href":179},";",[434,514,515,518],{},[251,516,517],{},"internal traffic"," from the IP ranges in Project settings, such as your office;",[434,520,521,522,525,526,529],{},"events outside the ",[251,523,524],{},"date range"," and ",[251,527,528],{},"platforms"," you picked.",[239,531,532],{},"Bot and internal flags are set when an event arrives.",[243,534,536],{"id":535},"_7-check-for-dropped-events","7. Check for dropped events",[239,538,539],{},"Events are dropped, not recorded, when:",[431,541,542,545,548,551],{},[434,543,544],{},"the trial ended, the plan ended, or the organization has no plan;",[434,546,547],{},"the plan's allowance is used up and overage is off, or the spending limit is reached;",[434,549,550],{},"the trial's 250,000-event cap is reached;",[434,552,553],{},"a project's monthly cap is reached.",[239,555,556,559,560,323],{},[251,557,558],{},"Usage & billing"," shows dropped events, and the dashboard shows a banner when events aren't recorded. See ",[510,561,199],{"href":200},[243,563,565],{"id":564},"_8-check-for-rejected-events","8. Check for rejected events",[239,567,568,570],{},[251,569,558],{}," also shows rejected events. Common causes:",[431,572,573,580,590,596],{},[434,574,575,576,579],{},"revenue events sent with a publishable key (",[273,577,578],{},"revenue_needs_secret_key",");",[434,581,582,583,586,587,579],{},"a custom event name starting with ",[273,584,585],{},"$"," (",[273,588,589],{},"reserved_name",[434,591,592,593,579],{},"an event over 32 KB (",[273,594,595],{},"too_large",[434,597,598,599,602],{},"a timestamp more than 30 days old (",[273,600,601],{},"too_old",").",[239,604,605,606,323],{},"See ",[510,607,609],{"href":608},"\u002Flimits\u002Flimits#rejection-reasons","Rejection reasons",[243,611,613],{"id":612},"_9-give-reports-a-minute","9. Give reports a minute",[239,615,616,617,620],{},"Reports that include today are cached for a minute, so trends catch up within about a minute of Live. Choose ",[251,618,619],{},"Updated … ago"," in the filter bar to refresh.",[243,622,624],{"id":623},"_10-revenue-is-missing","10. Revenue is missing",[431,626,627,630,637],{},[434,628,629],{},"Revenue events need a secret key, from your server or Dodo Payments.",[434,631,632,633,323],{},"With Dodo Payments connected, revenue events from your server add no revenue: the webhooks are the revenue. See ",[510,634,636],{"href":635},"\u002Fconcepts\u002Frevenue-and-attribution#one-revenue-source-per-project","One revenue source per project",[434,638,639,640,643],{},"Check the Dodo Payments card in ",[251,641,642],{},"Integrations → Payments"," for failed webhook events.",[243,645,647],{"id":646},"still-stuck","Still stuck?",[239,649,650,651,655,656,658],{},"Write to ",[510,652,654],{"href":653},"mailto:support@rabolic.com","support@rabolic.com"," with your project, the SDK and its version, and what ",[273,657,456],{}," logs.",[660,661,662],"style",{},"html pre.shiki code .s_bOF, html code.shiki .s_bOF{--shiki-light:#1F2328;--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sd69k, html code.shiki .sd69k{--shiki-light:#8250DF;--shiki-default:#8250DF;--shiki-dark:#D2A8FF}html pre.shiki code .s-BGO, html code.shiki .s-BGO{--shiki-light:#0A3069;--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html pre.shiki code .sDkKp, html code.shiki .sDkKp{--shiki-light:#0550AE;--shiki-default:#0550AE;--shiki-dark:#79C0FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s5nWI, html code.shiki .s5nWI{--shiki-light:#CF222E;--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .sQJ0q, html code.shiki .sQJ0q{--shiki-light:#953800;--shiki-default:#953800;--shiki-dark:#FFA657}",{"title":271,"searchDepth":664,"depth":664,"links":665},2,[666,667,668,669,670,671,672,673,674,675,676],{"id":245,"depth":664,"text":246},{"id":256,"depth":664,"text":257},{"id":417,"depth":664,"text":418},{"id":428,"depth":664,"text":429},{"id":470,"depth":664,"text":471},{"id":492,"depth":664,"text":493},{"id":535,"depth":664,"text":536},{"id":564,"depth":664,"text":565},{"id":612,"depth":664,"text":613},{"id":623,"depth":664,"text":624},{"id":646,"depth":664,"text":647},"A checklist for when Rabolic events don't appear. Debug mode, the environment filter, the key's kind and project, consent, bot and internal traffic filters, dropped and rejected events, and report caching.","md",null,{},{"icon":222},{"title":683,"description":684},"Troubleshooting events that don't show up","A checklist for when Rabolic events don't appear in the dashboard. Debug mode, the environment filter, the key's kind and project, consent, bot and internal traffic filters, dropped and rejected events, and caching.","p_nyRvhl_HDgovNVa0leQkPbbcU06h-bt7JoYv87Lao",[687,689],{"title":214,"path":215,"stem":216,"description":688,"icon":217,"children":-1},"Rabolic's limits. Event size (32,768 bytes), names, properties, batches, request size, SDK queue sizes, event age, rate limits, and the rejection reasons ingest returns.",{"title":224,"path":230,"stem":231,"description":690,"icon":232,"children":-1},"Connect Claude, ChatGPT, Claude Code or Cursor to Rabolic over MCP and ask about your analytics in plain language. Read-only, with your own access.",1794242363863]