WWebBuddyMarketplace
Reference

Known limitations

Everything version 0.1.0 does not do yet, or does differently from older notes and listings, in one place, so you can decide before you buy.

6 min readUpdated Oct 17, 2026Applies to Subsweep 0.1.0

On this page

We would rather you read this before buying than discover it afterwards. Each item is something the interface, the bundled product spec or a listing might suggest, but that version 0.1.0 does differently or not at all. Items will move off this page as they ship; the Changelog will say when.

Sources and detection

  • Bank feeds are solid on Plaid only. TrueLayer imports 12 months once, then quietly stops syncing because tokens are not refreshed. Salt Edge has not been tested against a live Salt Edge account, and Setu cannot be started from the interface. See Integrations.
  • No bank connection for India, by design: Indian workspaces use statements, email and the UPI mandate form.
  • Five countries in onboarding: the United States, Canada, the United Kingdom, Germany (standing in for the EU) and India.
  • Email is scanned once, not continuously. Gmail and Outlook are read when connected or when someone scans again, up to 80 messages each, and the hourly job does not re-scan. Tokens are not refreshed, so a scan more than about an hour after connecting finds nothing new until the mailbox is reconnected.
  • Receipt currency is guessed: Gmail receipts mentioning ₹, INR or GST are treated as INR and everything else as USD; Outlook receipts use the workspace currency.
  • One statement per upload, and no OCR: scanned image PDFs are refused.
  • Flags need charges. Subscriptions added only by hand are never flagged, even when two tools overlap.
  • Not built yet: category benchmarks, the unused-seats flag (defined but never raised), silencing a single flag ("both are needed"), bulk actions on the list, and per-subscription reminder settings in the interface.
  • Vendor suggestions in the add form come from the 48 quick-add tools, not the full 534-vendor catalogue (a typed name that matches the catalogue still picks up its logo and category when saved).
  • GST on INR amounts is a flat 18% estimate, not read from invoices. GSTINs and pre-debit notices are recognised in emails but not stored or used for dates.

Alerts and notifications

  • Slack alerts do not post until the per-alert Slack switch is set in the database; the switch is not in the interface. See Slack.
  • Some alerts can arrive twice. New-subscription, price and trial alerts look back two hours on an hourly job.
  • Manual charge checks escalate quickly: the email goes out on two consecutive hourly runs, and the subscription is marked Unverified on the next one if nobody answers.
  • "Amount changed" on a charge check records the charge at the current amount; edit the amount in the detail panel.
  • Notification switches always appear on when the page opens.
  • The digest covers savings so far, renewals in the next 30 days and the Unsure count. It does not list new subscriptions or price changes.
  • Calling the hourly job more than once an hour repeats digests and the monthly statement reminder.

Integrations

  • QuickBooks and Xero export does not reach live data: QuickBooks goes to the sandbox API with a placeholder company, Xero lacks its tenant header, and failures are reported as success. No category mapping or scheduled export.
  • Usage insights (Google Workspace, Notion, Zoom) have no screen and fetch no data.
  • PostHog never initialises; Sentry covers browser errors only; Inngest only receives an event per run.
  • Plaid OAuth banks that need a redirect page to resume Link may not complete.

Teams, accounts and roles

  • No platform admin panel. Plans, trials and account removal are done in Stripe or SQL (Operator tasks).
  • The demo login has a published password. It is off in production unless DEMO_LOGIN_ENABLED=true; while it is on, anyone can use the shared demo workspace. If it was ever on, remove the account before launch (how).
  • No password reset or change-password screen. Magic links (which need email) are the recovery path.
  • No way to close sign-ups short of blocking /signup at the proxy or editing the code.
  • Accountants cannot switch back from a client workspace to their own without clearing the subsweep_org cookie, and people who are not accountants have no workspace switcher at all. See Clients.
  • Role checks have gaps: Viewers can save the Organization settings through the API, and anyone in a workspace can start the Slack, QuickBooks or Xero connection.
  • Invites need outbound email; without a provider the invite link is not shown or logged anywhere.
  • Account deletion removes the active workspace and the user. An accountant's client workspaces are left behind, and Stripe subscriptions are not cancelled.

Billing and plans

  • Without STRIPE_WEBHOOK_SECRET, the Stripe webhook refuses every event (503), so paid plans never change on their own. Set it together with STRIPE_SECRET_KEY (Stripe setup).
  • The Accountant quantity in Stripe is not updated as an accountant adds or removes clients.
  • Accountant mode needs Stripe or SQL. It is turned on only by a paid Accountant plan; without Stripe, an operator sets it by hand (how).
  • Accountant mode stays on after the Accountant plan ends. The Clients screen remains, but adding clients is refused and client workspaces are treated as Free.
  • The Free cap of 10 applies to hand-added and quick-added subscriptions, not detected ones.
  • The Free blur is visual: the real savings figure and flag text are sent to the browser.
  • Pro's "3 team seats" is a label, not a limit.
  • Failed payments do not restrict anything; past_due keeps the paid plan.
  • Prices are hard-coded text in several files and not read from Stripe.
  • Without Stripe in production, upgrade buttons show a "contact us" message; plans must be set by hand.

Reports, exports and attachments

  • Attachments are write-only. You can upload a contract or invoice, but uploaded files are not listed and the download link points to a route that does not exist. The contract end date and notice period it tries to read are stored but not used by the calendar.
  • R2 storage does not work: the upload is not signed as S3 requires, and the failure is silent. Without R2, files go to .data/uploads, which is not persistent on Vercel or in a container without a volume.
  • Saved so far is a monthly figure, not a running total since each cancellation.
  • Offboarding's Remove seat counts the subscription's whole monthly cost as one seat and lowers the amount to match.
  • The PDF export is the browser's print dialog, and the CSV export ignores the list's filters.
  • The forecast covers three months back and three ahead.

Browser extension

  • Ships pointing at http://localhost:3002; you must set your URL in three files (how).
  • Shows on every page of its 20 vendor sites, not only checkout pages, and has no close button.
  • Asks for broad permissions (all http and https pages), has no icons, and is not published in any store.
  • Prefilled values are lost if the person is signed out of Subsweep.

Operations

  • The build needs the production environment and a reachable database, because pre-rendering touches it. There is no Dockerfile.
  • No migration tool. The schema bootstraps itself and only ever adds tables and columns (details). drizzle-kit is not installed despite the included config.
  • One database connection per server process in production, which suits serverless hosting and limits concurrency on a single long-running server.
  • The hourly job walks every workspace in one request, one after another. On Vercel it must finish within your plan's function duration.
  • Without outbound email in production, email sign-up and magic links are refused. ALLOW_UNVERIFIED_SIGNUP=true re-opens sign-up without verifying addresses; magic links stay off. Google sign-in is not affected.
  • Vendor logos without a bundled SVG are loaded by the browser from Google's favicon service.