By area

By symptom — quick lookup

If you’re not sure which area to start in, find your symptom in this table.

SymptomMost likely causeFirst thing to check
Browser shell loads as a blank white page after a recent deploy. Stale code chunk reference (you opened a tab before the deploy and clicked a route after). Hard refresh (Cmd/Ctrl + Shift + R). We auto-recover on the next navigation, but a manual refresh is fastest.
cURL to /integrations/v1/orders returns 401 invalid_api_key. Key revoked, typo, or wrong prefix (e.g. using a pck_live_* key on the integration-api endpoint). Integration API troubleshooting → invalid_api_key.
WooCommerce reports your endpoint is unreachable but the webhook URL in PeptideClients is correct. The signing secret in WC doesn’t match the one in Settings → Connectors, so we’re returning 401 and WC interprets that as a delivery failure. Rotate the signing secret. See signature_invalid.
You sent a proposal but the client says they didn’t receive the email. Bounced, marked spam by the client’s mail server, or sitting in Resend’s suppression list. Email not delivered.
Approval link opens but says “link expired or invalid”. Token has been used already, the proposal was voided, or the URL was truncated by an email client. Re-send the proposal from the detail page (issues a fresh token).
Sign-in works but the dashboard says you have no permissions. You’re a member of a different workspace, or your role was changed. Top-right workspace switcher — pick the right org. If you only see one and it’s wrong, the workspace owner needs to re-invite you.
Outbound webhook is showing as dropped in Settings → Webhooks. 5 consecutive delivery failures (typically a 5xx from your endpoint, or a timeout). Webhook not firing.
An order from WooCommerce appeared but the line items are wrong. WC’s price vs total drift — we use price first, then fall back to total / subtotal. Open the order detail, check the line item metadata; reconcile in WC if needed.
Your pck_int_* key is being rate-limited (429 rate_limited). Burst over your per-key cap (default 600 req/min). Honor Retry-After: 60; if you need more throughput, raise the cap in Settings → Connectors → key → Rate limit.
Idempotency replay returns 409 idempotency_conflict. You reused an Idempotency-Key with a different body. By design. Pick a new Idempotency-Key (recommended: include a request hash or a UUID).

Before you write to support

You’ll get a faster answer if you include these three things.

  1. The exact request (or screenshot of the page). For API issues: the cURL you ran (with the key redacted), the response status, and the response body.
  2. The integration request log row. For inbound API issues, open Settings → Connectors → your key → Request log, find the failing request, click Copy as text. That payload has the timestamp, path, error code, and IP we need.
  3. What you expected to happen vs what actually happened. One sentence each.

Email it all to {{CONTACT_EMAIL}}. Response times live in the contact page.