metabase / metabase/metabase

Persian character "ی" changes to Arabic "ي" during caching, breaking filters

Open
#79,966 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

.Backend .Needs Triage .Run Repro Bot .Team/UXWest Priority:P2 Type:Bug
Dominant language
Clojure
Stars
49.3k
Forks
6.8k
Avg merge
1d 13h
Merged PRs (30d)
653

Description

### Describe the bug

Hello Metabase Team,

We are currently using Metabase for our company dashboards, which include data in Persian. We have encountered a caching/encoding regression that disrupts our users' ability to search and filter data.

The Issue:
When text containing the Persian character "ی" (Farsi Yeh) is cached, it eventually converts to the Arabic character "ي" (Arabic Yeh), which breaks searching and filtering for any items containing that letter.

Users trying to filter a dashboard using the correct Persian "ی" will find no results because the cached data now uses "ي".

We believe this is a regression, as we did not experience this problem in earlier versions of Metabase.

Could the team investigate how the caching layer handles Unicode normalization for this character? Fixing this would be a massive help to your Persian-speaking user base.

Thank you for your hard work on this excellent tool.

### To Reproduce

If the database has any fields with the letter it's produced automatically when needed to be included in a check list selection.

### Expected behavior

_No response_

### Logs

_No response_

### Information about your Metabase installation

```JSON
{
"browser-info": {
"language": "en-US",
"platform": "Win32",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:153.0) Gecko/20100101 Firefox/153.0",
"vendor": ""
},
"metabase-info": {
"databases": [
"postgres",
"sqlite",
"sqlserver"
],
"run-mode": "prod",
"plan-alias": "",
"version": {
"date": "2026-08-06",
"tag": "v0.63.5.2",
"hash": "ab2966c"
},
"settings": {
"report-timezone": "Asia/Tehran"
},
"hosting-env": "unknown",
"application-database": "postgres",
"application-database-details": {
"database": {
"name": "PostgreSQL",
"version": "18.3 (Debian 18.3-1.pgdg13+1)"
},
"jdbc-driver": {
"name": "PostgreSQL JDBC Driver",
"version": "42.7.12"
}
}
},
"system-info": {
"file.encoding": "UTF-8",
"java.runtime.name": "OpenJDK Runtime Environment",
"java.runtime.version": "25.0.3+9-LTS",
"java.vendor": "Eclipse Adoptium",
"java.vendor.url": "https://adoptium.net/",
"java.version": "25.0.3",
"java.vm.name": "OpenJDK 64-Bit Server VM",
"java.vm.version": "25.0.3+9-LTS",
"jvm.available-processors": 10,
"jvm.max-memory": "7.8 GB",
"os.name": "Linux",
"os.version": "6.8.0-137-generic",
"system.total-memory": "31.3 GB",
"user.language": "en",
"user.timezone": "GMT"
}
}
```

### Severity

It disrupts user's ability to find items in the lists and filtering.

### Additional context

_No response_

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the cache-to-filter path described in the issue with a value containing Persian "ی", comparing the original and cached values. Trace the caching layer and checklist-selection filtering flow; done means the character remains unchanged through caching and filtering returns the expected item, with regression coverage for this case.

Written by the indexing model from the issue text.

Assessment

Tech stack
clojure
Domain
backend, internationalization, search
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.