[K3S] Issue with data being loaded correctly on Meshery Dashboard

Meshery Image Tag: stable-latest

Im running a bare minimum K3S cluster on Pop OS with headlamp and a basic application.

Installed meshery using mesheryctl install script

curl -L https://meshery.io/install | PLATFORM=kubernetes bash -

Post installation, I see my cluster summary in form of icons but on clicking on any other resource tabs other than summary, Its not showing up any data.

Checking the network tab, I found an error stating the following from MeshSync Resources API trigger

invalid character '%' looking for beginning of value | Short Description: Error fetching MeshSync resources.DB might be corrupted | Probable Cause: MeshSync might not be reachable from Meshery | Suggested Remediation: Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server

On further investigation, I found out that summary uses a singular clusterId variable while the other tabs take in clusterIds in form of an array. It is URL encoded when transmitted as part of URL with query param called clusterIds. When meshery server receives it, the query param is not unescaped with characters from URL encoding hence returning the above error.

I added a single line

clusterIds, _ = url.QueryUnescape(clusterIds)

after the clusterIds is extracted from query params and rebuilt the image and tested. It seems to be working now.

I wonder if there is a cleaner way to do it.

Let me know if there are any more details you’d like. I could create a PR for it if its reproduced on anyone else’s end

Issue: Request to MeshSync is double encoded.

  1. the array of clusterId is encoded to string

  2. the query param is URL encoded.

Solution: Add addition URL decoding so array of cluster Id is correctly decoded to string so Json.Unmarshal can extract the list from it

Issue: https://github.com/meshery/meshery/issues/18847
PR: https://github.com/meshery/meshery/pull/18848

1 Like

I was able to reproduce this. Here are the steps to reproduce:

  • Install k3s following the quick-start guide
  • Install mershery using curl -L https://meshery.io/install | PLATFORM=kubernetes bash - (which basically installs mesheryctl on your system)
  • Open dashboard by running mesheryctl system dashboard and then visit the network NETWORK Section in your dashboard:

  • Open chrome Console and go to the Network tab and check the Preview section, you will see the following error:
invalid character ‘%’ looking for beginning of value | Short Description: Error fetching MeshSync resources.DB might be corrupted | Probable Cause: MeshSync might not be reachable from Meshery | Suggested Remediation: Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server
  • Two resource types throw HTTP 500:
    • Path: /api/system/meshsync/resources
      • clusterIds: [“c26426a5-6464-4b5c-9f66-c4ffe130efef”]
      • kind: ConfigMap
    • Path: /api/system/meshsync/resources
      • cluserIds: [“c26426a5-6464-4b5c-9f66-c4ffe130efef”]
      • kind: Service

Looking at pod logs: kubectl logs -f meshery-ddd4d4bf-gxm8v -n meshery

time=“2026-04-21T16:06:35Z” level=error msg=“invalid character ‘%’ looking for beginning of value | Short Description: Error fetching MeshSync resources.DB might be corrupted | Probable Cause: MeshSync might not be reachable from Meshery | Suggested Remediation: Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server” app=meshery code=meshery-server-1124 probable-cause=“MeshSync might not be reachable from Meshery” severity=2 short-description=“Error fetching MeshSync resources.DB might be corrupted” suggested-remediation=“Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server”
time=“2026-04-21T16:06:36Z” level=error msg=“invalid character ‘%’ looking for beginning of value | Short Description: Error fetching MeshSync resources.DB might be corrupted | Probable Cause: MeshSync might not be reachable from Meshery | Suggested Remediation: Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server” app=meshery code=meshery-server-1124 probable-cause=“MeshSync might not be reachable from Meshery” severity=2 short-description=“Error fetching MeshSync resources.DB might be corrupted” suggested-remediation=“Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server”
time=“2026-04-21T16:06:37Z” level=error msg=“invalid character ‘%’ looking for beginning of value | Short Description: Error fetching MeshSync resources.DB might be corrupted | Probable Cause: MeshSync might not be reachable from Meshery | Suggested Remediation: Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server” app=meshery code=meshery-server-1124 probable-cause=“MeshSync might not be reachable from Meshery” severity=2 short-description=“Error fetching MeshSync resources.DB might be corrupted” suggested-remediation=“Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server”
time=“2026-04-21T16:06:53Z” level=error msg=“invalid character ‘%’ looking for beginning of value | Short Description: Error fetching MeshSync resources.DB might be corrupted | Probable Cause: MeshSync might not be reachable from Meshery | Suggested Remediation: Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server” app=meshery code=meshery-server-1124 probable-cause=“MeshSync might not be reachable from Meshery” severity=2 short-description=“Error fetching MeshSync resources.DB might be corrupted” suggested-remediation=“Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server”
time=“2026-04-21T16:07:16Z” level=error msg=“invalid character ‘%’ looking for beginning of value | Short Description: Error fetching MeshSync resources.DB might be corrupted | Probable Cause: MeshSync might not be reachable from Meshery | Suggested Remediation: Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server” app=meshery code=meshery-server-1124 probable-cause=“MeshSync might not be reachable from Meshery” severity=2 short-description=“Error fetching MeshSync resources.DB might be corrupted” suggested-remediation=“Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server”
time=“2026-04-21T16:07:18Z” level=error msg=“invalid character ‘%’ looking for beginning of value | Short Description: Error fetching MeshSync resources.DB might be corrupted | Probable Cause: MeshSync might not be reachable from Meshery | Suggested Remediation: Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server” app=meshery code=meshery-server-1124 probable-cause=“MeshSync might not be reachable from Meshery” severity=2 short-description=“Error fetching MeshSync resources.DB might be corrupted” suggested-remediation=“Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server”
time=“2026-04-21T16:07:18Z” level=error msg=“invalid character ‘%’ looking for beginning of value | Short Description: Error fetching MeshSync resources.DB might be corrupted | Probable Cause: MeshSync might not be reachable from Meshery | Suggested Remediation: Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server” app=meshery code=meshery-server-1124 probable-cause=“MeshSync might not be reachable from Meshery” severity=2 short-description=“Error fetching MeshSync resources.DB might be corrupted” suggested-remediation=“Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server”
time=“2026-04-21T16:07:19Z” level=error msg=“invalid character ‘%’ looking for beginning of value | Short Description: Error fetching MeshSync resources.DB might be corrupted | Probable Cause: MeshSync might not be reachable from Meshery | Suggested Remediation: Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server” app=meshery code=meshery-server-1124 probable-cause=“MeshSync might not be reachable from Meshery” severity=2 short-description=“Error fetching MeshSync resources.DB might be corrupted” suggested-remediation=“Make sure Meshery has connectivity to MeshSync.Try restarting Meshery server”

Two things to test out:

  1. As pointed out: % invalid character (might be an issue parsing query parameters or double URL-encoding of clusterIds in the dashboard resource request path maybe?)
  2. Probable Cause: MeshSync might not be reachable from Meshery make sure MeshSync is reachable from Meshery.
  1. seems more likely since the you already tried adding this: clusterIds, _ = url.QueryUnescape(clusterIds) and it seems to be working. I will have to dig into the server code and get back to you on this.