# Troubleshooting and FAQ

> Common deploy and config problems and their fixes - email, live video, payments, backend connectivity, and notifications - plus a short FAQ.

Common problems and their fixes, grouped by what you were setting up. Most first-run issues come down to a service that is not connected yet or a value that is set in one place but not another. Work through the section that matches your symptom.

---

## Email Not Sending

Members are not getting verification, invite, reset, or notification emails.

- **Confirm the provider is configured.** The email system needs your provider connected and its API key set in your environment. If the key is missing, no mail leaves the instance.
- **Verify your sending domain.** Your domain must be verified with your email provider, with the SPF and DKIM records your provider gives you set at your DNS host. Unverified domains get blocked or dropped before the inbox.
- **Check the From address.** The address you send from must belong to the verified domain. A mismatch fails authentication.
- **Read the provider's activity log.** If a test send left the app but never arrived, your provider's log usually shows the bounce or block and the reason.

See [Custom Domain and Branding](/docs/help/branding) for the branded-email setup.

---

## Live Video Not Connecting

A live event will not start, or members cannot join the stream.

- **Confirm the video provider keys are set.** Live video runs through a third-party real-time video provider (Daily.co) connected with your own account. If its keys are missing or wrong in your environment, the session cannot be created.
- **Confirm recording storage is connected.** Recordings need a storage target configured. Without it, a session may start but the recap and recording steps fail.
- **Check camera and microphone permissions.** If one participant cannot join, have them confirm the browser has granted camera and mic access on your domain.

---

## Payments Failing

Checkout will not complete, or subscriptions are not activating.

- **Confirm your Stripe keys are set.** Member payments run through your own Stripe account. Both the secret key and the publishable key must be present in your environment, and they must be from the same Stripe account and the same mode.
- **Match test and live mode.** A live-mode key paired with a test-mode price, or the reverse, fails every charge. Keep the whole set on one mode.
- **Set up the Stripe webhook.** Subscription lifecycle events - activation, renewal, cancellation, payment failure - arrive by webhook. If the webhook endpoint or its signing secret is wrong, payments may succeed at Stripe while your community never hears about them. Re-copy the endpoint URL and the signing secret from Stripe.

---

## The Web App Cannot Reach the Backend

The site loads but data never appears, or every action errors.

- **Check the backend URL.** The web app needs the environment value that points it at your backend deployment. If it is empty, pointed at a local address in production, or pointed at the wrong deployment, the app has nothing to talk to.
- **Confirm the backend is deployed.** Make sure your backend deployment is live and healthy, not just your web app.
- **Set values on the right environment.** A value set on your machine but not on your production host is the most common cause of "works locally, breaks in production." Set it on the production deployment and redeploy.

---

## Members Not Receiving Notifications

Activity is happening but members are not being notified.

- **In-app works, email does not.** This is almost always the email setup above. Fix email first.
- **Push is silent.** Push requires the per-platform mobile setup. Confirm the push credentials are in place for the store you shipped to. See [Mobile Apps for iOS and Android](/docs/help/mobile-apps).
- **Check per-type preferences.** Members choose which notification types reach each channel. A member who muted a type, or a conversation, will not be notified for it - that is working as intended.
- **Digests are batched.** Daily and weekly digest emails summarize activity on a schedule rather than firing instantly, so a missing digest may simply not be due yet.

---

## FAQ

### Do I have to update when a new release ships?

No. You own the source, so you decide when and whether to apply a release. See [Updating Your Instance](/docs/help/updates).

### Where does my data actually live?

In your own backend and storage accounts, on infrastructure you control. You can export it any time. See [Backups and Data Ownership](/docs/help/backups).

### Does Seedly take a cut of membership revenue?

No. Payments run through your own Stripe account and the platform adds 0% in transaction fees.

### Can members really see nothing branded as Seedly?

Correct. Your domain, logo, colors, emails, and app icon are all yours. See [Custom Domain and Branding](/docs/help/branding).

### The mobile app feels like the website. Is that a bug?

No. The iOS and Android apps are Capacitor shells that wrap the responsive web app. That is by design - see [Mobile Apps for iOS and Android](/docs/help/mobile-apps).

### Which currencies can members pay in?

USD and GBP are supported, alongside other currencies Stripe handles.

---

## When in Doubt, Never

- Never restore a full data backup over a live backend without taking a current export of that live data first.
- Never commit an environment file or any secret to source control.
- Never run a data migration against production without a current backup in hand.
- Never delete a backend deployment or storage bucket unless you are certain - those are one-way actions.

---

## Related

- [Backups and Data Ownership](/docs/help/backups)
- [Updating Your Instance](/docs/help/updates)
- [Security and Capabilities Overview](/docs/help/security)
- [Getting Started](/docs/getting-started)

---
Source: https://seedlycommunities.com/docs/help/troubleshooting
