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.
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.
"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 changed | What applies it |
|---|---|
| Custom environment variables, Database Manager Allowed, Search Indexing and the other TLS and routing settings | Apply Config in the app's actions. It updates the configuration and restarts the app. |
| The Odoo config patch | A new deployment: Build → Deploy. An update alone does not apply it. |
| Extra packages | The app's next deployment, which rebuilds its image once. |
| Code on the app's branches | Build → 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:
| Status | Usually means |
|---|---|
| 401 | The token is missing, revoked or expired. Create a new one in My Settings → API Tokens. |
| 403 | The 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. |
| 409 | Not 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). |
| 429 | Too 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.
- Email: support@cloudwady.com
- Contact form: cloudwady.com/contact-us
Was this page helpful?
Your answer helps us prioritize documentation improvements.
Thanks — your feedback helps us improve.
Type to search titles and text.
↑↓ to move ↵ to open Esc to close