Troubleshooting
Find the real cause when something in your Litestore setup fails.
When something in your Litestore setup fails, the entries below help find the cause. Each entry refers to the relevant behaviour in the source and mentions common explanations that turn out to be wrong. The entries are grouped by where the failure shows up.
Sign-in
Database
Checkout
Build and checks
Don't delete a failing contract test
When a contract test starts failing, it means that a guarantee changed. Deleting the test hides the failure but leaves the underlying problem in place.
Background work
Failure types
The entries above follow two patterns.
| Pattern | Examples |
|---|---|
| Code that takes payment throws an error. | getPaymentProvider() throws when the Stripe keys are missing, and an unknown provider name throws instead of falling back. |
| Optional features stop working without showing an error. | Rate limiting fails open when Redis is unreachable. The Google button is missing, with no error, when only one Google variable is set. Every schedule stays idle while the store keeps serving when Inngest is not connected. |
Related
Development
Start Postgres and the dev server, reseed the database, and run the checks before you commit.
Configuration
env.ts requires some environment variables, and each optional group turns on one service.
Deploying
A configured store goes to production by running migrations, building the app and serving the Inngest functions.