Openpanel-dev / Openpanel-dev/openpanel
Self-hosted 2.3.0: Identified profile links double-encode IDs; upstream fix missing from published image
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 7k
- Forks
- 481
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 21
Description
Summary
In the published self-hosted dashboard image, clicking a namespaced user ID in Profiles → Identified opens a double-encoded URL. The profile page then displays “User not identified”, “No properties found”, and zero events, even though the profile and events exist.
The source fix appears to be already merged in bf439746, but the current public Docker image does not include it. Could you publish an official patched dashboard image/release containing that fix?
Environment
- Self-hosted OpenPanel, deployed with Docker Compose through Coolify.
- Dashboard:
lindesvard/openpanel-dashboard:2(also published as2.3.0andlatestwhen checked). - Image digest:
sha256:b773cf864454a0ec89b2a133b48bf06202880ed650a75cc2f1f5c87aaed1cffa. - Published image last updated August 18, 2026; source fix dated August 19, 2026.
Reproduction
- Identify a user with a namespaced profile ID, for example
example:mobile:user:16, and send properties and events for that ID. - Open Profiles → Identified.
- Click that user's name in the table, or the table row.
- Observe navigation to
/profiles/example%253Amobile%253Auser%253A16. - The detail page shows an unidentified user, no properties, and zero events.
Expected
The router encodes the ID once: /profiles/example%3Amobile%3Auser%3A16. The detail page should display the existing identified profile, properties, and events.
Verification
- Reproduced by clicking the profile name in Chrome on the published image; its original anchor href was singly encoded, but navigation ended at the double-encoded URL.
- The dashboard's
profile.byIdAPI returns the identified profile and properties for the literal ID. - Opening the singly encoded URL renders the profile properties and nonzero event counts correctly.
- The published bundle's profile-table row handler passes
encodeURIComponent(row.original.id)as a router parameter, matching the cause described in the upstream fix.
This makes working identification appear broken to self-hosted users. An official image containing the existing upstream correction would let us resolve it without maintaining a custom build.
Contributor guide
No contributing guide indexed for this repository
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
Start by inspecting commit bf439746 and the repository's dashboard image or release workflow to see how the published image is built and tagged. Publish an image containing that correction, then verify the reproduced namespaced profile URL resolves once and displays the profile, properties, and events.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, typescript
- Domain
- devops, release
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100