Umami Problems & Issues

Real user-reported problems, complaints, and limitations for Umami. Based on analysis of 14 signals.

Overall score: 73/100

Issues by Category

reliability6 issues

Umami database migrations fail on large databases

Upgrades run Prisma migrations at build time, and on databases with millions of events these can deadlock, time out or eat all disk space. One user's 09_update_hostname_region migration deadlocked (P3018) on a 1M-row RDS instance and took over 24 hours to finish manually in batches; another's Postgres volume filled to 97% during a v2 to v3 upgrade.

Frequency: 5%Sentiment: -0.70/1003 sources
Impact
8

Umami not tracking visitors after installing the script

The most common setup complaint: the dashboard stays empty. Typical causes reported on forums and blogs are a data-domains list that doesn't match the exact hostname (www vs bare domain), a consent banner that never loads the script, CORS or redirect loops when Umami sits behind Cloudflare and Nginx, and the user's own ad blocker.

Frequency: 8%Sentiment: -0.50/1004 sources
Impact
7

Umami v3 dropped MySQL support

Umami v3.0.0 (November 2025) supports PostgreSQL only. Self-hosters on MySQL must first upgrade to v2.19.0, then dump or CSV-export their data into PostgreSQL before moving to v3. Large databases need the slower CSV route.

Frequency: 6%Sentiment: -0.60/1003 sources
Impact
7

Ad blockers block Umami unless you rename or proxy the script

Filter lists block umami.is and the default script.js and /api/send paths, so a share of visits never reaches the dashboard. Umami's own docs say renaming with TRACKER_SCRIPT_NAME and COLLECT_API_ENDPOINT or proxying through your domain helps, but some lists block anything that looks like analytics regardless.

Frequency: 7%Sentiment: -0.40/1003 sources
Impact
6

Umami shows wrong country or 'Unknown' location

Self-hosted Umami takes location from proxy headers or the visitor IP. Behind Cloudflare, a load balancer or Nginx that doesn't forward the real IP, every visit can show as one country or Unknown. The official fix is enabling Cloudflare's visitor location headers and forwarding them, or SKIP_LOCATION_HEADERS.

Frequency: 5%Sentiment: -0.40/1004 sources
Impact
5

Umami stops recording events when you hit your spending budget

On monthly Pro and Business plans you can set a spending budget. If the estimated bill passes it, Umami stops recording events until the next billing period or until you raise the budget, so a traffic spike can leave a gap in your stats. You get an email when it happens.

Frequency: 3%Sentiment: -0.40/1001 sources
Impact
5
usability2 issues

Umami visit duration shows 0 seconds and bounce rate looks too high

A bounce is a visit with only one event, and time is only measured between events, so a reader who spends five minutes on one article and leaves counts as a 0-second bounce. Users call the visit timer close to useless for blogs; a GitHub request for heartbeat tracking has had no fix.

Frequency: 5%Sentiment: -0.40/1003 sources
Impact
4

Umami dashboard not loading with uBlock Origin enabled

Self-hosters report dashboard errors such as 'TypeError: e.datasets[n] is undefined' or empty realtime views after updates. In at least one case the cause was uBlock Origin blocking dashboard API URLs on the Umami instance itself; disabling it for that domain fixed it.

Frequency: 3%Sentiment: -0.30/1002 sources
Impact
4
pricing2 issues

Umami Cloud event counting and overage charges

Every pageview, custom event and each stored event property counts as an event. Pro includes 1M events then charges $0.00003 per extra event; Business includes 10M then $0.00002. Event-heavy setups with many properties burn through the quota faster than pageview-based tools suggest.

Frequency: 4%Sentiment: -0.30/1002 sources
Impact
4

Umami Cloud free plan limited to one site and 6 months of data

Hobby is free for up to 100K events per month but only one website, no team members, 6 months of retention, and no API, email reports, data import or email support. The next step is Pro at $20/month, a big jump for hobbyists with two or three small sites.

Frequency: 5%Sentiment: -0.30/1003 sources
Impact
4
performance1 issue

Why is Umami so slow on large websites?

Self-hosted Umami on PostgreSQL computes charts from raw events on demand. One user with about 12M pageviews saw 30-day and longer ranges fail with 'Something went wrong' and the container killed after passing 2 GB of RAM. The maintainer's answer was mainly bigger database hardware; ClickHouse support was added for high-volume setups.

Frequency: 5%Sentiment: -0.50/1002 sources
Impact
6
customization1 issue

Outbound link and custom event tracking needs manual markup

Events require a data-umami-event attribute on each element or a umami.track() call, values are stored as strings, and names are capped at 50 characters. One developer abandoned Umami because tracking outbound links meant tagging every external link or writing a custom click handler, and page-view metadata required disabling auto-tracking.

Frequency: 5%Sentiment: -0.40/1003 sources
Impact
4
onboarding1 issue

Umami Docker can't connect to the database

A recurring self-hosting error: the check-db step reports DATABASE_URL is defined, then 'Unable to connect to the database' and exits. Causes reported include a wrong hostname in DATABASE_URL, Postgres not ready yet, and container networking. Since v3.5.0 a missing APP_SECRET also stops Compose from starting.

Frequency: 5%Sentiment: -0.40/1003 sources
Impact
6
support1 issue

Umami GitHub issues go stale without answers

Self-hosters rely on GitHub and community forums. Several bug reports (for example a dashboard error in v2.11 and the visit-duration request) were auto-closed as stale or moved to discussions without a fix. Email support only starts on the paid Pro cloud plan.

Frequency: 4%Sentiment: -0.40/1003 sources
Impact
4

Regret Patterns

Common reasons users regret choosing Umami.

Upgraded to v3 without checking the database

Self-hosters on MySQL discovered v3 is PostgreSQL only and had to roll back and run a full data migration.

Frequency: 5%On the first major upgrade

Migration ran out of disk or deadlocked

Large event tables made Prisma migrations deadlock or fill the disk, leaving the instance down until the migration was fixed by hand.

Frequency: 4%After a year or more of data

Realised a chunk of visitors was missing

Developer and tech audiences run ad blockers, so stats undercounted until the script and endpoint were renamed or proxied.

Frequency: 5%First weeks after launch

Dashboard became unusable at scale

As traffic grew, long date ranges on PostgreSQL timed out, pushing users to bigger servers, ClickHouse or Cloud.

Frequency: 4%At millions of events

Trusted the engagement numbers

Bounce rate and visit duration looked terrible for a blog because single-page reads count as 0-second bounces.

Frequency: 4%First monthly report

Outgrew the free Hobby plan's single site

Adding a second small site meant jumping to $20/month Pro or moving to self-hosting.

Frequency: 3%When launching a second project

When Umami Breaks Down

Specific scenarios where Umami fails or underperforms.

Developer or privacy-savvy audience

Ad blockers and Brave block the default script and endpoint, so visits go uncounted without renaming or proxying.

Self-hosted on MySQL

No upgrade path to v3 until the data is migrated to PostgreSQL.

Tens of millions of events on PostgreSQL

30-day and all-time views can fail or run out of memory; migrations take hours or days.

Behind Cloudflare, a load balancer or Nginx

Missing forwarded IP or location headers produce Unknown or wrong countries, and bad CORS/redirect setup can stop tracking entirely.

Long-form content sites

Readers who stay on one page record 0 seconds and inflate bounce rate.

Site with a cookie consent banner

Banners that gate the script behind a consent group stop Umami from loading unless the group is configured correctly.