Help Center

How can we help?

Browse the knowledge base for an instant answer, or open a ticket and we'll route it to a human within your plan's response window.

Open a ticket

Email [email protected] with your team name, the project, and a clear description. Reply window varies by plan — see SLA below.

Check system status

Live status of every region, the dashboard, and the build cluster. Subscribe to incidents from the status page.

FAQ

Answers to the most common pre-sales questions: billing in Naira, BYOS, supported frameworks, custom domains, security.

Knowledge base

Tap a category, then jump to the article below.

Articles

My build is stuck on “Queued”

+
Builds enter the queue when the cluster is at capacity. Open the project, expand the build row, and you'll see your queue position and estimated wait time. Most queue holds clear in under 90 seconds. If a build is queued for longer than 10 minutes, hit cancel and email support with the project name — it usually means an upstream webhook delivery was lost and we need to nudge it.

How to read a build log

+
Open the deployment row from the project's Deploys tab. The log streams live during the build and is permanently archived once the build finishes. The log is split into stages (clone → install → build → start). The first red line in the log is almost always the actual failure — the rest are downstream consequences.

Rolling back to a previous deploy

+
On the Deploys tab, find a previously successful deploy and click Promote to production. This re-uses the already-built artifact from that deploy — no rebuild, no billable minutes, instant rollback. If you need to roll back to a specific commit instead, push that commit to your branch and we'll trigger a fresh build.

Cancelling an in-flight build

+
Click Cancelon any build row that's in a non-terminal state (Queued, Building, Provisioning, Deploying). The container is stopped, the build slot is released to the pool, and the deploy is marked Canceled. You aren't billed for the partial build minutes.

Connecting a custom domain

+
Go to Project → Domains and add the domain. We give you the exact DNS record to create (CNAME for subdomains, A record for apex). Save it at your registrar, then click Verify. Verification usually completes in under a minute; certificates are issued automatically right after.

Apex / root domains (A records)

+
For root domains like example.com (without www.), most registrars want an A record. Set it to the IP shown on the Domains page. If your registrar supports ALIAS or flattened CNAMEat the apex, those work too — same target.

Transferring an existing domain to Launchverse

+
We don't hold registrations — you keep the domain at your registrar. To move traffic to a Launchverse-hosted app, just point the relevant A or CNAME record at the value shown on the Domains page. Email support if you need help coordinating a low-downtime cutover for a live site.

TLS certificate failed to issue

+
99% of cert issuance failures are DNS-related — the domain isn't pointed at us yet, or there's a stale AAAA / CAA record blocking issuance. On the Domains page, click Re-verify. If it still fails after DNS has propagated, send us the domain — we have operator tooling to surface the exact rejection reason.

Setting up a BYOS host

+
BYOS (Bring Your Own Server) lets you run Launchverse-managed deployments on a server you control. From the dashboard, add the host's IP and the SSH public key we generate for it, then run the one-line bootstrap command on the server. We validate connectivity, install the runtime, and surface the host on your servers list. Use Hetzner CCX13 or larger for production; the smallest tier is fine for previews.

Recovering a server that ran out of memory

+
OOM-kill events typically come from a build trying to allocate more memory than the server has free. Two fixes: (1) bump the server tier, or (2) add a swap file (see below). The dashboard's server metrics page shows OOM events in red — if you see clustering, your build needs more memory than the host can provide.

Adding swap to a small VPS

+
On Ubuntu / Debian: sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile. Add /swapfile none swap sw 0 0 to /etc/fstab to make it persist across reboots. 2 GB of swap is enough for most builds.

Rotating BYOS SSH keys

+
Open Dashboard → SSH Keys, click Rotateon the affected key, and we'll generate a fresh keypair and push the new public key to every BYOS host that uses it. The old private key is revoked immediately.

Resetting your password

+
On the sign-in page, click Forgot password and enter your email. We send a recovery link that expires in 60 minutes. If the email never arrives, check spam; if it's definitely not there, email support from the address on the account.

GitHub OAuth sign-in failures

+
If GitHub kicks you back to Launchverse without signing you in, the most common cause is browser-extension interference (uBlock, Privacy Badger). Try a clean Chrome / Firefox window in incognito mode. If that works, allow launchverse.app in your blocker. If it still fails, email support with the error code shown on the redirect.

Creating an API token

+
Go to Dashboard → API Tokens, click New token, give it a name and the scopes you need (read / write / deploy), and copy the value. Tokens are shown once and start with lvse_. If you lose one, revoke and mint a new one — we cannot recover the plaintext.

Revoking a leaked token

+
Go to Dashboard → API Tokens, find the token by name or by its 4-character suffix, and click Revoke. The token is invalidated immediately across every region. If the leak is in a public Git history, rotate the token first, then rewrite the history with git filter-repo.

Upgrading or downgrading your plan

+
On the Pricing page or Dashboard → Billing, click the plan you want. Upgrades take effect immediately and the new quota is prorated for the rest of the billing month. Downgrades take effect at the end of the current period — you keep the higher plan's benefits until then.

I was charged after I cancelled

+
Cancelling stops auto-renewal at period end — it doesn't refund a charge that's already gone through. If a charge happened afteryou cancelled, that's on us. Email [email protected] with the transaction reference and we'll refund within 2 business days.

Generating an invoice for finance

+
Open Dashboard → Billing, find the period you need, and click Download invoice. Invoices include your team name, address, VAT number (if configured), and a Naira-denominated breakdown. To set the billing entity, edit it on the Billing page first.

Why my build minutes look wrong

+
Build minutes are charged from the moment your build actually starts — queue time is free. If a build is rebuilt by the system (e.g. because the host webhook didn't confirm), the second attempt is on us, not you. The Usage page reconciles within an hour of every build.

Where do I see my database credentials?

+
Open the project, then the Resources tab. Each resource card has a Revealtoggle that surfaces the username, password, database name, internal connection URL, and (when public access is on) the external URL and public port. For marketplace services we also surface the generated env variables that look like credentials — tokens, API keys, admin passwords. Credentials are fetched server-side from the engine on every load, so a refresh always shows the current secret rather than a stale post-provision flash. Lifecycle controls (start, stop, restart, delete) are at the bottom of each card. Read more in our guide: Provision a managed Postgres database.

Editing or deleting a cron job

+
Cron jobs live both on the project's Overview tab and on the global Dashboard → Cron Jobs page. Click the pencil icon next to any job to change its name, cron expression, or command — the change propagates to the engine immediately. Deletion unschedules the engine task and removes the local row in one step; there is no recovery, so confirm carefully. Per-project lists make audits easier than the global view; both are powered by the same data. Cron syntax cheatsheet and pitfalls are in the Schedule cron jobs guide.

Where do I see CPU and memory live?

+
Open a project and switch to the Observabilitytab. The KPI strip at the top shows real deploy counts, success rate, build minutes, and the engine's container status. The Sentinel panel below renders live CPU and memory usage as a 30-minute moving window when the platform's sentinel agent is enabled on your underlying server — if it isn't available, we say so honestly rather than show synthetic data. The deploy reliability chart and recent deploys list are always available regardless. Refreshes every 60 seconds. More background: Production observability without Datadog.

Why is my egress request being dropped?

+
If your application's outbound calls fail with getaddrinfo ENOTFOUNDor connection refused, the most likely cause is the project's egress allowlist on the Securitytab. The allowlist names every host your container is permitted to reach — everything else is dropped. Add the missing hostname (e.g. api.stripe.com) and redeploy. Wildcards are supported so *.s3.amazonaws.comcovers every bucket. Internal services on the same project (Postgres, Redis) are always reachable and don't need to be in the allowlist. Background reading: Web App Firewall, HTTPS, and egress allowlists explained.

Response time SLA

First-response targets by plan. Times are measured from when the ticket lands in our queue to the first human reply.

PlanFirst responseChannels
FreeBest effort, within 3 business daysEmail
StudentWithin 1 business dayEmail + chat
ProWithin 4 business hoursEmail + chat
EnterpriseWithin 1 hour, 24/7Email + chat + phone

Production outage?

If your live application is fully down, mark your ticket [P1]in the subject line and we'll page on-call. Pro and Enterprise customers can also use the in-dashboard Emergency contact button.

Always check status.launchverse.app first — if there's an active platform incident, you'll see it there before you can fill out a ticket.