[bug]: Project Views page crashes with "TypeError: n.find is not a function" (self-hosted Enterprise v3.1.1)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 59.6k
- Forks
- 5.8k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 49
Description
Bug: Project "Views" page crashes with TypeError: n.find is not a function
Instance: self-hosted, Plane Enterprise Edition (Commercial), v3.1.1 (chart makeplane/plane-enterprise, latest available — confirmed both via /api/instances/ self-check and helm search repo)
Repro steps:
- Open any project → click "Views" tab in sidebar
- Page shows generic error boundary: "🚧 Looks like something went wrong!"
Environment: fresh project created via public API (POST .../projects/), 0 custom views defined, issue_views_view: true (default)
Console error:
TypeError: n.find is not a function
at store-context-D98Bm7Rj.js:7:934577
at store-context-D98Bm7Rj.js:1:7976
at vt (mobxreact.esm-DHqZ4TCz.js:3:5997)
at t.computeValue_ (mobxreact.esm-DHqZ4TCz.js:3:25706)
at t.trackAndCompute (mobxreact.esm-DHqZ4TCz.js:3:25551)
at t.get (mobxreact.esm-DHqZ4TCz.js:3:25163)
at store-context-D98Bm7Rj.js:1:7631
at sidebar-wrapper-GUitNyCP.js:1:14124
at Object.hs [as useMemo] (react-dom-CmQL-dVO.js:6:21173)
at e.useMemo (chunk-ZA36QIGN-b7JuA1sz.js:1:7330)
followed by React Router error boundary catch + duplicate React error #418/#423 (hydration mismatch, secondary symptom of the above).
Notes:
- Confirmed NOT a backend/API issue — every request in this flow (
GET .../views/?per_page=50,GET .../views-lite/) returns 200 with valid (empty) response. - Reproduces identically on both v3.1.0 and v3.1.1 (upgraded specifically to test — no change).
- Root cause looks like a MobX computed value in the sidebar's
store-contextcalling.find()on a value that isn't an array — possibly a shape mismatch between whatviews-lite(returns raw array) andviews(returns paginated{results: [...]}) endpoints return, if the sidebar merges/reads from both without normalizing.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Begin at the sidebar's computed path in store-context-D98Bm7Rj.js and trace the data used with GET .../views/?per_page=50 and GET .../views-lite/. Reproduce on an empty project, compare the returned shapes, and verify completion when the Project Views page opens without the TypeError or error boundary.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100