Skip to main content
Ready to deploy? Start Free Trial

Documentation Help & reference

Troubleshooting & FAQ

What to do when a run fails, a site shows the maintenance page, a certificate or backup needs attention, or an API call is refused, plus common questions and how to reach us.

Updated 10/20/2026

Runs and deployments

A deploy, update or other run failed

Open the app and its Operations menu. The Workflows tab lists every run of the app, newest first. Open the failed one: its page shows each step, marks the one that failed and gives the reason it stopped. The usual causes are a branch or commit that doesn't build, a module that won't install or update, or a missing dependency.

Fix the cause, then press Retry in the app's header. Retry appears while the app is in an error or canceled state, and it starts the failed run again. If a newer run of the app has already started, the old one can no longer be retried: its page says so and offers Open latest run.

A run marked Retrying failed once and is being retried automatically. Wait for it to finish before you press Retry yourself.

"Cannot … while '…' is running"

Some actions wait for the app to be idle: a restart, a module update, turning maintenance mode on or off, and changes made through the API. If one of them is refused with a message such as Cannot restart v19-0 while 'a backup' is running, something else is still running on the app. Follow it in Operations and try again once it has finished. Through the API, cw or an AI assistant, the same refusal reads Not now: … is running on the app.

I changed a setting but nothing happened

Saving a setting on the app's Configs tab stores it; the running app picks it up only when the change is applied:

You changedWhat applies it
Custom environment variables, Database Manager Allowed, Search Indexing and the other TLS and routing settingsApply Config in the app's actions. It updates the configuration and restarts the app.
The Odoo config patchA new deployment: Build → Deploy. An update alone does not apply it.
Extra packagesThe app's next deployment, which rebuilds its image once.
Code on the app's branchesBuild → Update, or Quick update for a code refresh without rebuilding the image.

Undoing a bad change

Every change to an app records a restore point first. Open the app's Restore points menu and roll back the code, the data or both. See Deployments & rollback.

Your website and certificates

Visitors see a maintenance page

The app's address shows a maintenance page in two cases: maintenance mode is on, or the app is not running (it was stopped, it crashed, or it is restarting). Open the app and check its state. If maintenance mode is on, use Disable Maintenance in the app's actions. If the app is in an error state, read its last run in Operations, as above.

The browser warns about the certificate

The platform issues and renews your apps' HTTPS certificates itself once an address points at the app's server. A new address can take a few minutes after its DNS record appears. If the warning stays:

  • Use Renew SSL in the app's actions. It refreshes the routes of all the app's addresses, so the router asks for their certificates again.
  • With the White Label add-on, the app's URLs tab shows each address's certificate, when it expires and whether the public check finds the address Answering. Check SSL reads the certificate again, and Refresh Traefik Route sets the address's route again.

A certificate shows as expiring soon when it has 14 days or fewer left, which normally means its renewal failed. The Certificate expiring alert also tells you before it lapses.

My own domain doesn't open the app

Addresses on your own domain need the White Label add-on: add them on the app's URLs tab with Add Custom URL, and make sure the domain's DNS record points at the app's server. A new record can take a few minutes to reach everyone.

Backups and restores

"Production backup(s) critical or missing"

The overview shows this when a production app has gone too long without a successful backup. Only apps with Auto Backup on count. An app turns to warning after 36 hours without one and to critical after 48.

Open the app's Backups menu and expand the latest backup: a failed one says why. Press Retry on it once the cause is fixed. A common cause is a lack of free disk space on the app's own server; adding external storage moves backups off it. See Backups & restore.

A restore is taking long

A large database or filestore can take a while. While it runs, the restoration's card shows what it is doing on its Now line, and the app's Logger has the full restore log under its restore source. From a terminal, cw logs v19-0 --source restore --follow shows the same log as it grows.

Access and seats

"Adding this user would exceed namespace '…' seat allowance"

Your workspace has used all its seats. Free a seat by deactivating someone you no longer need in Settings → Team & Access, buy an Additional Seat add-on in Settings → Billing & Plans, or move a project to a plan with more seats. Plans don't add up: a workspace has the seats of its largest plan. See Billing & pricing.

A teammate can't see a project, or can't press a button

Access is given per workspace, and what a person may do depends on their level and on the environment. A Developer can deploy in development but not in production, for example. An Admin sets levels in Settings → Team & Access. See Permissions & access.

I can't open a terminal on a server

A terminal or SSH session on a production server needs the Maintainer level; on other servers it needs Developer Plus. Viewers can't connect to servers. The dashboard never opens a session as root: see Root access.

A menu shows a lock

The project's plan doesn't include that feature. Automated deployments, backups and alerts need a paid plan, and custom URLs need White Label. See Billing & pricing.

I forgot my password

Use Reset Password on the login page to get a reset link by email.

API, cw and AI assistant errors

Every refusal answers a code and a message that says what to do. The common ones:

StatusUsually means
401The token is missing, revoked or expired. Create a new one in My Settings → API Tokens.
403The token doesn't hold this function, your level doesn't allow it in this environment, the project's plan doesn't include it, or changes through the API aren't open to your account yet.
409Not now: something is running on the app, the app hasn't been deployed yet, or the run can't be retried (the message says why).
429Too many requests: 120 a minute per token, and 10 changes a minute. Wait a moment and try again.

Every code is listed in the error code reference; tokens are explained in API, CLI & AI assistants.

FAQ

Which Odoo versions can I run?

Odoo 14.0 and later, Community or Enterprise. You pick both when you create an app, from the versions the creator lists. An app keeps its version once it is deployed.

Do I own my servers and my data?

Servers you create through your connected cloud provider live in your own cloud account, and your backups can be copied to storage you own. You get terminal and SSH access to your servers according to your level, and root with your own SSH key.

How do automatic backups work?

Each app has an Auto Backup switch on its Overview → Automation tab, on by default in production. Apps with it on are backed up once a night, between 00:00 and 05:00 UTC. An app keeps its 5 newest nightly backups and one a week for three weeks after that; backups you make yourself are kept for 30 days.

What's the difference between a project and an environment?

A project groups your environments (Production, Staging, Development), and each environment runs its own apps. See the glossary.

Can I move from Odoo.sh?

Yes: see Migrating from Odoo.sh.

Getting help

If this page didn't solve it, write to us. Including the details below gets you an answer faster.

What to include: the workspace, project and app, what you expected and what happened, and for a failed run, its number from Operations and the reason its failed step gives.

Was this page helpful?

Your answer helps us prioritize documentation improvements.

Thanks — your feedback helps us improve.