Odoo.sh Storage Full: Find What Uses Space, Clean Up, or Upgrade
Odoo.sh storage full? What counts, what it costs per GB, how to find what uses space, how to clean attachments safely, and when to upgrade to Dedicated.
Most advice on an Odoo.sh project that is out of space says delete attachments and move on. That is backwards: a deleted file you need back during an audit costs far more than US$0.20. Our Odoo ERP support services start with a measured storage audit.
This guide is for admins and IT managers running Odoo 17 to 20 on Odoo.sh who have seen the storage figure climb or the bill change. Still choosing a platform? Read our Odoo Online vs Odoo.sh vs on-premise comparison first.
What does "Odoo.sh storage full" actually mean?
On Odoo.sh, storage full means your project has grown past the storage in your subscription, and the platform adjusts the plan rather than blocking writes. The Odoo.sh project settings documentation says the plan is automatically adjusted when production exceeds the included storage.
So the symptom is usually a higher invoice, not a crashed database. There are hard limits, though. Odoo's cloud storage documentation lists them: 512 GB on shared Odoo.sh hosting, 4 TB on Dedicated, and 100 GB on Odoo Online.
The other limit is time. A 300 GB project backs up, restores, copies to staging and upgrades far slower than a 30 GB one. That makes storage a support topic, not only a billing one.
How much does Odoo.sh storage cost and when does the plan change?
Odoo.sh storage costs US$0.20 per GB a month on the list price, so storage alone rarely justifies a costly cleanup; watch workers and the jump to Dedicated instead. Figures are from the Odoo.sh pricing page, annual billing, seen on 5 November 2026, excluding the Enterprise license.
| Odoo.sh item | List price (annual billing) | Range on shared hosting | What pushes it up |
|---|---|---|---|
| Worker | US$57.60 per worker a month | 1 to 16 workers | Concurrent users, portal traffic, heavy crons |
| Storage | US$0.20 per GB a month | 1 to 512 GB | Attachments, Documents, chatter, logs |
| Staging environment | US$14.40 per environment a month | 0 to 20 | Parallel feature testing |
| Dedicated hosting | US$480 a month on top | Required above 16 workers or 512 GB | Large groups, read-only PostgreSQL access |
Illustrative math from the list price: 50 GB is US$10 a month, 200 GB is US$40, and the full 512 GB is US$102.40. Compare that with a day of consultant time. Clean up for speed, safety and the 512 GB ceiling, not to save a few dollars.
Workers are the costly line, and the docs warn that more workers do not fix slow code. Our guide on whether Odoo can scale to 500 or 1,000 users covers worker sizing.
What counts toward Odoo.sh storage?

Odoo.sh storage counts the PostgreSQL database size plus the disk files in your production container: the filestore, session storage and similar files. That is the definition in the settings documentation, and it explains most of the "my attachments say 2 GB but the project says 3 GB" confusion.
| Component | Where it lives | Grows with | Counted in the storage figure |
|---|---|---|---|
| PostgreSQL database | Database server | Records, chatter, tracking, indexes | Yes |
| Filestore | Container data directory | Attachments, images, PDFs, Documents | Yes |
| Session files | Container data directory | Logged-in users and portal visitors | Yes |
| Server logs | Container logs directory | Requests, cron runs, errors | Yes, usually small |
| Automatic backups | Separate backup servers | Database plus filestore, 14 copies | Separate from the live figure |
| Staging databases | Staging builds | Copies of production, deleted after a month | Platform disk, rebuild time |
Every byte you keep is copied 14 times. The Odoo.sh branches documentation states that seven daily, four weekly and three monthly backups are kept, each with the dump, the filestore, logs and sessions. You cannot shorten that retention to save space.
Staging databases are copies of production that Odoo.sh deletes after one month, and development databases last about three days. The Odoo.sh FAQ adds that old builds are garbage collected to make room for new ones, and that databases expired for more than three months are locked.
One Odoo.sh user with a 40 GB filestore reported that backups and staging branches pushed total storage past 200 GB. A lean filestore makes every copy and staging rebuild faster, which is the real payoff of cleanup.
How do you find what uses space on Odoo.sh?
To find what uses space on Odoo.sh, read the project Settings figure, then split it into database and files with the web shell, then split attachments by model inside Odoo. Work from the outside in, and write the numbers down before you delete anything.
- Settings, Production database size: open your Odoo.sh project settings and note the total. This is the number the plan is billed on.
- Web shell, odoosh-storage: the branch Shell tab lists this command to check the container filesystem. It separates container files from the database.
- Web shell, ncdu: Odoo's docs recommend ncdu to walk the data directory interactively. Look for the filestore and session folders and for anything you copied in by hand, such as old dumps.
- psql, database size: in the shell, open psql and run a size query on the current database and on the largest tables with pg_total_relation_size. Chatter and tracking tables usually lead.
- Odoo, Attachments list: in debug mode, open Settings, Technical, Attachments, group by Resource Model and read the File Size totals. This tells you which app owns the bulk.
- Compare the two filestore numbers: the Attachments total and the folder size on disk differ, and the gap tells you how much is orphaned or belongs to sessions.
That gap is a common question. One Odoo 15 user saw a 2 GB Attachments total against a 2.9 GB filestore. Session files and orphans from earlier restores are the usual explanation.
Where does the space usually go in an Odoo database?
In most Odoo databases the filestore is far larger than PostgreSQL, and a handful of attachment types account for most of it. Odoo stores files on disk under a checksum, so an identical file sent to 100 customers is stored once; volume comes from distinct files, not repeats.
| Space driver | Typical source | Safe to remove? |
|---|---|---|
| Documents app files | Scanned bills, contracts, HR files | Rarely; follow the retention policy |
| Invoice, order and report PDFs | Odoo stores generated PDFs as attachments | Posted invoices no; draft and cancelled copies yes |
| Product image variants | Several sizes per product and variant | Only by shrinking source images |
| Incoming email attachments | Chatter on leads, tickets, bills | Case by case; often the biggest block |
| Marketing and website uploads | Banners, brochures, videos | Duplicates and unused media yes |
| Import and export files | Spreadsheets left on wizards | Yes |
| Chatter and tracking rows | mail_message, mail_tracking_value | Old notifications and tracking yes, business messages no |
One forum user found a 1.1 GB PostgreSQL database with a 15 GB backup, because the backup includes a filestore that had reached 20 GB. If your Odoo.sh figure jumped, look at files first and tables second.
How do you clean Odoo attachments safely?
Clean Odoo attachments by removing the records, letting Odoo's own garbage collector remove the files, and testing every rule on a staging branch first. Deleting files on disk directly breaks the link between the record and the file, so work through the attachment records instead.
- Start on staging: Odoo.sh staging branches are neutralized copies of production. Run the cleanup there, measure the saving with ncdu, then repeat on production only if it is worth it.
- Remove transient leftovers: attachments whose resource model is a wizard, or that have no resource model and no owner, are usually import files and compose-mail drafts.
- Deduplicate marketing media: website and email marketing uploads are often the same brochure under ten names. Keep one and relink.
- Shrink images at the source: replacing a 6 MB product photo with a 400 KB one shrinks every derived size Odoo stores for it.
- Prune old notifications and tracking: old mail_notification rows and field tracking values on closed records are safe to trim; keep business messages and anything on invoices.
- Never touch legal documents: posted invoice PDFs, signed documents, payroll files and anything under a legal retention period stay, however large.
Know how the garbage collector works. The daily cron Base: Auto-vacuum internal data removes files that Odoo marked for deletion in a checklist folder. Files orphaned another way, such as by a restore over an existing filestore, are not on that list and stay on disk.
That is why one user with a filestore beyond 100 GB reported the autovacuum did not solve the problem. Orphans need a one-off comparison of disk files against attachment records, with a backup taken first.
Our Odoo support and maintenance guide explains how such housekeeping tasks fit a monthly support plan.
How do you reduce Odoo database size in PostgreSQL?
To reduce Odoo database size on the PostgreSQL side, target the chatter, tracking, logging and bus tables, then let autovacuum reclaim the space. Business tables such as account_move_line are rarely the issue and should not be touched.
Run the table-size query from the shell and look at the top ten. In a busy database mail_message, mail_tracking_value, mail_notification and ir_logging are usually near the top. Odoo already cleans some tables, such as bus messages and old user login logs, through the autovacuum cron.
Chatter needs judgment. A salesperson's note on a lead has business value; a tracking row saying a field changed from 3 to 4 on a closed 2019 order does not. Agree a retention rule with finance, then delete in batches of a few thousand rows so users are not blocked.
After large deletes, PostgreSQL reuses the space but does not shrink the table on disk until a full vacuum. On Odoo.sh you have psql but not server administration, so ask Odoo Support before running anything that locks a large production table.
Should you move Odoo attachments to Google Cloud or Azure instead?
Moving Odoo attachments to Google Cloud or Azure makes sense when chatter and email files dominate and the project is heading for the 512 GB shared cap. Odoo's cloud storage integration stores chatter and email attachments on those platforms instead of the database server.
An Odoo staff answer about the Odoo.sh storage limit confirms 512 GB shared and 4 TB Dedicated, and says the filestore offload has been deployed for Odoo 18.0 and 19.0, arranged via your account manager.
Read the fine print first. The cloud storage documentation says files generated by Odoo, such as sales orders, and Documents and Sign app files always stay on the database server. If Documents is your biggest block, offload will not help; a plan upgrade or a retention policy will.
When should you upgrade the Odoo.sh plan instead of cleaning up?
Upgrade the Odoo.sh plan when storage growth comes from records you must keep, when performance rather than disk is the complaint, or when you are near 16 workers or 512 GB. Clean up when the growth is waste, which an audit will show within a day.
| Situation | Clean up | Upgrade or change plan |
|---|---|---|
| Storage up 20 percent after a marketing import | Yes, remove duplicate media | No |
| Documents app holds 200 GB of scanned bills under a 10-year rule | Only duplicates | Yes, pay for storage |
| Users report slow screens and timeouts | Not the fix | Yes, review workers and code |
| Project at 400 GB and growing 15 GB a month | Yes, plus retention rules | Plan the move to Dedicated now |
| Need read-only PostgreSQL access for BI | No | Yes, Dedicated only |
| Many parallel feature branches | No | Add staging environments |
A free check helps you decide. Our Odoo health check tool scores your setup across hosting, data and customization in minutes and shows where storage sits among your other risks.
If the answer is to leave Odoo.sh for your own servers, size the move properly. Our Odoo database migration guide covers the dump and filestore transfer, and our DevOps services run the target.
Odoo.sh storage by industry: who fills the disk and why
Different industries fill Odoo.sh storage in different ways, and the right fix depends on whether the growth is legal records, media or noise. These are the patterns we see most.
| Industry | Pain or cost driver | Odoo approach | How iVentureTeam helps |
|---|---|---|---|
| Accounting and tax firms | Scanned bills in Documents, 7 to 10 year retention | Keep files, pay for storage, prune duplicates | Retention rules and duplicate detection |
| eCommerce and retail | Large product images in many variants | Compress at source, limit variants | Image pipeline and catalog cleanup |
| Manufacturing | Drawings and quality photos on work orders | Documents workspaces with rules | Attachment policy per record type |
| Professional services | Email threads with attachments on projects | Chatter retention, cloud offload | Offload setup and chatter pruning |
| Healthcare and labs | Reports and consent files, strict retention | Never delete, plan Dedicated early | Capacity planning and access controls |
| Marketing agencies | Campaign media and mass mailing attachments | Deduplicate media, archive old campaigns | Media audit and cleanup scripts |
How iVentureTeam helps with Odoo.sh storage full problems

iVentureTeam treats a full Odoo.sh disk as a measurement problem first and a deletion problem last. We have delivered 150+ ERP projects across 35+ countries with 40+ Odoo specialists over 13+ years.
- Storage audit: database and filestore broken down by model, record type and age, with a written estimate of what is waste and what is record.
- Safe cleanup: rules agreed with finance, scripted and tested on a staging branch, then run on production with a fresh backup, as part of our Odoo ERP support services.
- Plan sizing: workers, storage and staging counts matched to your load, and a dated plan for the move to Dedicated if you will reach 512 GB.
- Offload and retention: cloud storage setup for chatter files, Documents retention rules, and image compression for eCommerce catalogs.
- Platform moves: if Odoo.sh no longer fits, our Odoo migration services move the database and filestore to Dedicated or your own servers.
Odoo database analysis case study: Indep Consulting
A storage audit is a database exercise, and Indep Consulting shows how we read an Odoo database directly to answer management questions. Indep Consulting SPRL is a Belgian company selling cleaning chemicals, cleaning equipment and maintenance contracts.
Sales, stock and accounting data sat in disconnected tools, so questions such as product margin or vendor spend were slow to answer. iVentureTeam implemented Odoo Sales, CRM, Inventory, Accounting and eCommerce as one system, with EDI for trading partners and claim management tied to orders.
We then wrote eight management reports directly in SQL, covering invoices, orders, sales activity, product margin, vendor summary, stock, stock rotation and contracts. Delivery took 12 weeks, and the management reporting cycle became two times faster.
The same discipline, querying Odoo's tables rather than guessing, is what a storage audit needs. Read the Indep Consulting Odoo ERP and SQL reporting case study.
The bottom line on Odoo.sh storage full
Odoo.sh storage full is a bill and a speed problem before it is an outage: the platform adjusts your plan at US$0.20 per GB a month, and the hard stop is 512 GB on shared hosting. Measure the database and filestore, clean the waste on staging first, keep every legal record, and pay for the rest.
Plan the move to Dedicated or to cloud offload while you are still below 400 GB. A storage audit takes about a day and usually ends with a short cleanup list and a clear plan size.
Ready to get your Odoo.sh storage under control?

Get a measured audit of your Odoo.sh database and filestore, with a cleanup list and a plan recommendation. Request an Odoo.sh storage audit, call +91-90235-15208, or email business@iventureteam.com.
Frequently Asked Questions
What happens when Odoo.sh storage is full?
+
Odoo.sh does not block your database. Its documentation says that if the production database exceeds the storage in your subscription, the plan is automatically adjusted, so you pay for the extra gigabytes. The hard limit is 512 GB on shared hosting and 4 TB on Dedicated.
How much does extra storage cost on Odoo.sh?
+
The Odoo.sh pricing page lists storage at US$0.20 per GB a month with annual billing, excluding the Enterprise license. That makes 100 GB about US$20 a month. Workers at US$57.60 each and the US$480 Dedicated tier are the larger costs.
How do I check my Odoo.sh disk space?
+
Open the project Settings for the production database size, then use the odoosh-storage and ncdu commands in the branch web shell to see container files. Inside Odoo, group the Attachments list by resource model to see which app holds the most files.
Can I delete attachments in Odoo to free space?
+
Yes, but delete the attachment records, not the files on disk, and test on a staging branch first. Safe targets are transient wizard files, duplicate media and old notifications. Keep posted invoice PDFs, signed documents and anything under a retention rule.
Does Odoo automatically clean the filestore?
+
Partly. The daily Base: Auto-vacuum internal data cron removes files that Odoo marked for deletion. Files orphaned another way, for example by restoring a dump over an existing filestore, are not on that list and need a manual comparison.
Do Odoo.sh backups count toward my storage?
+
Backups live on separate backup servers and follow a fixed schedule: seven daily, four weekly and three monthly copies, each with the dump and the filestore. A smaller filestore makes every backup and restore faster, but you cannot shorten retention to save space.
Do staging branches use extra Odoo.sh storage?
+
Each staging branch holds a copy of the production database and filestore, and costs US$14.40 per environment a month on the list price. Staging databases are deleted after one month of inactivity, and development databases last about three days.
When should I move from Odoo.sh shared to Dedicated hosting?
+
Move when you are approaching 16 workers or 512 GB of storage, or when you need read-only PostgreSQL access for BI tools. Dedicated adds US$480 a month on the list price and raises the storage limit to 4 TB, so plan the move well before the cap.
Free Odoo upgrade plan
Planning an Odoo upgrade?
Tell us your version, edition and custom modules. We check what breaks, what it costs to fix and the safest path, before any work begins.
Free, with no obligation. A senior consultant replies within 12 business hours.
Free Odoo tools
All tools- Odoo Health CheckVersion, modules, findings and upgrade cost
- Odoo App SelectorWhich apps you need, by industry
- Odoo Project EstimateIndicative cost and timeline in minutes
- Odoo Implementation Cost CalculatorImplementation cost and timeline, in minutes
- Odoo Migration Cost CalculatorVersion jump or legacy ERP, priced in minutes
Continue reading
Can Odoo Scale to 500 or 1,000 Users? Sizing, Hosting and Limits
Can Odoo scale for enterprise? Workers, CPU, RAM and PostgreSQL for 500 to 1,000 users, Odoo.sh vs on-premise, multi-company limits, license cost and SAP.
Odoo Post Implementation Review: 30/60/90 Day Checklist and Template
Run an Odoo post implementation review at 30, 60 and 90 days: go-live checklist, six KPIs, Odoo 19 and 20 checks and a report template you can copy.
Odoo Industry Packages Explained: Install, Customize and Roll Back
What Odoo industry packages install, which plan they need, and how to install, customize and roll back on Odoo Online, Odoo.sh and on-premise safely.
