# Writing a support request that gets solved fast

> How to contact SupaHost support and what to include (instance and project names, UTC timestamps, request IDs, exact errors) so your problem can be found and fixed quickly.

Source: https://supahost.app/kb/support-requests · Updated 2026-11-11

Email **supahost@volods.com**, or use **Help** at the bottom of the dashboard sidebar, which opens a new email to the same address. Reply to any SupaHost email and it reaches the same inbox.

Most of the time spent on a support request goes into working out *which* instance, *which* project and *when*. If your first email answers those, we can usually go straight to the cause.

## What to include

| Include | Example | Why |
|---|---|---|
| Instance name | `acme` | Finds your VM |
| Project name | `app-one` | Narrows it to one database and set of services |
| When it happened, in UTC | `2026-11-11 14:32 UTC`, or a range | Lets us line it up with service logs and health checks |
| What you did | "Called `supabase.auth.signInWithOAuth({ provider: 'google' })` from the login page" | Tells us which service to look at |
| What you expected vs. what happened | "Expected a redirect to Google; got a 400 page" | Separates a bug from a misunderstanding |
| The exact error text | Copied, not paraphrased, with the HTTP status | Error text is searchable; summaries aren't |
| Request IDs | Any ID in the response headers or body, an Edge Function's `sb-error-code` header, a Stripe event ID | Pins down the one request among thousands |
| Is it still happening? | "Every request since 14:30" or "Once, couldn't reproduce" | Sets the priority |
| What you've tried | "Re-saved the Auth settings, cleared cookies" | Saves us suggesting it |

Send the account owner's email address if you're writing from a different one.

## Getting the details

**Timestamps in UTC.** In a browser console:

```js
new Date().toISOString(); // "2026-11-11T14:32:05.120Z"
```

**The full error from supabase-js.** Log the whole error object, not just `message`:

```ts
const { data, error } = await supabase.from("bookings").insert(row).select();
if (error) console.error(JSON.stringify(error, null, 2)); // code, details, hint, message
```

**Response headers.** In DevTools, open the Network tab, click the failing request and copy the status, response headers and response body.

**Edge Function logs.** *Dashboard → your project → **Functions** tab → Logs*, filtered to the function. Copy the lines around the failure.

**Cron runs.** The failed run's `return_message` from `cron.job_run_details`.

**On Business and Enterprise**, add the output of:

```bash
sudo supahost-status
sudo supahost-logs app-one auth   # or rest, storage, functions, http
```

## What not to send

- **Secrets:** the `service_role` key, database passwords, SSH private keys, SupaHost access tokens (`shp_…`) or OAuth client secrets. We never need them. If you've sent one by mistake, rotate or revoke it where you can (for example, revoke the access token on the **Access tokens** page) and tell us.
- **Personal data** from your users, unless it's needed to reproduce the problem. A user ID is usually enough.

## A good example

```
Subject: app-one on acme: Google sign-in fails with redirect_uri_mismatch

Instance: acme   Project: app-one
Since: 2026-11-11 14:30 UTC, every attempt
Steps: login page -> "Sign in with Google" -> Google shows
  "Error 400: redirect_uri_mismatch"
Changed today: added custom domain api.bookings.example (Active at 14:28 UTC)
Tried: Site URL and Redirect URLs unchanged; cleared cookies
```

That one is answered in the first reply: see [OAuth broke after adding a custom domain](/kb/oauth-after-custom-domain).

## Related

- [Instance health alert: services unhealthy](/kb/instance-unhealthy)
- [Studio Logs and Reports pages are missing](/kb/studio-logs-reports-missing)
- [Security at SupaHost](/docs/security/overview)
