---
title: Troubleshooting
slug: troubleshooting
seo:
  description: Find a fix for common Saleor checkout, catalog, authentication, app, and webhook problems.
---

Start with the symptom you can see. Each guide explains the settings or API behavior to check next.

## Checkout and catalog

| Symptom | Where to start |
| --- | --- |
| No shipping methods are returned | [Check the checkout channel and shipping configuration](/developer/checkout/troubleshooting#missing-shipping-methods) |
| A product or variant is unavailable | [Check checkout availability](/developer/checkout/troubleshooting#variantproduct-is-not-available), then [product troubleshooting](/developer/products/troubleshooting) |
| A paid checkout has not become an order | [Review checkout completion](/developer/checkout/troubleshooting#resolving-paid-checkouts-not-converting-to-orders) |
| Checkout requests are slow | [Review checkout performance guidelines](/developer/checkout/performance) |
| Channel behavior is unexpected | [Channel troubleshooting](/developer/channels/troubleshooting) |

## API access and integrations

| Symptom | Where to start |
| --- | --- |
| A request fails with an authorization or permission error | [Authentication](/api-usage/authentication) and [permissions](/developer/permissions) |
| A GraphQL operation returns errors | [API error handling](/developer/extending/api/errors) |
| An app cannot install or connect | [App troubleshooting](/developer/extending/apps/developing-apps/troubleshooting) |
| An app reports a specific error code | [App error codes](/developer/extending/apps/developing-apps/app-error-codes) |
| A webhook is not behaving as expected | [Webhook troubleshooting](/developer/extending/webhooks/troubleshooting) |

## A docs example will not run

1. Check that the Playground URL is your store's API endpoint, ending in `/graphql/`.
2. Check the editable **Variables**, including the channel slug. Replace placeholders with values from your store.
3. In the API walkthrough, complete prerequisite examples in order. Changing an earlier step resets dependent progress.
4. Read both the HTTP status and GraphQL `errors` in the response. A successful HTTP request can still contain GraphQL errors.
5. Compare your store's Saleor version with the schema version shown in the API reference.

The embedded Playground sends public requests. Use a separate GraphQL client for operations that require an app token.

## Still stuck?

[Report a documentation issue](https://github.com/saleor/saleor-docs/issues/new) and include the page URL. Describe what you expected, what happened, and the Saleor version. Include a minimal example with tokens and personal data removed.

For questions about your implementation, [ask the Saleor community](/developer/community/contributing) or [join Discord](https://saleor.io/discord).
