keybase / keybase/keybase-issues

Missing edge to new gpg key -> empty graph in user profile, "error with hierarchical layout"

Open
#3,345 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
899
Forks
40
PR merge metrics
No merged PRs in 30d

Description

My graph was working up until recently, but now I just get an empty display with the following error message (In the Firefox dev tools console):

Link: https://keybase.io/m01/graph

> Error: To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.

Here's a rough sequence of events:
1. I had just rotated my PGP key (add device (`pc1`), `keybase pgp select --multi`, remove old key using `keybase pgp drop ...`); I'm pretty sure my graph still worked after this.
2. I thought to sign my new key with my old PGP key and upload the updated public key of my new PGP key (with the extra signature from my old PGP key) to keybase, which I think is probably what broke the graph.

Notice that `node_01017fa626b4298b6774d14c137ac5899388581a068ff0e1d324b33b1d4a2e8e41120a`, my new gpg key, is missing from the `edges` list, but is present in the nodes list.

Have I somehow lost the signature from my device key?

I get the same result in Chromium.

My graph (`window.user_graph`):
```
{
"nodes": {
"node_01011403d8e3a9164a0c2fc74edb6d376006c4f3ec38722d2db6f335cfc85c8c97d70a": {
"type": "key",
"name": "PGP",
"key_fingerprint": "224aa38533c6a4c5d9732f4bd4c5457eb40d1d11",
"node_id": "node_01011403d8e3a9164a0c2fc74edb6d376006c4f3ec38722d2db6f335cfc85c8c97d70a",
"kid": "01011403d8e3a9164a0c2fc74edb6d376006c4f3ec38722d2db6f335cfc85c8c97d70a",
"device_type": null,
"key_type": 1,
"revoked": true,
"is_eldest": true
},
"node_0120792986fffe9f9045093107d7a6c1299b510c4697870ff3a184a4032225cf7cb20a": {
"type": "key",
"name": "pc1",
"key_fingerprint": "",
"node_id": "node_0120792986fffe9f9045093107d7a6c1299b510c4697870ff3a184a4032225cf7cb20a",
"kid": "0120792986fffe9f9045093107d7a6c1299b510c4697870ff3a184a4032225cf7cb20a",
"device_type": 1,
"key_type": 3,
"revoked": false,
"is_eldest": false
},
"node_01017fa626b4298b6774d14c137ac5899388581a068ff0e1d324b33b1d4a2e8e41120a": {
"type": "key",
"name": "PGP",
"key_fingerprint": "eea0718047804026e3d9ffa6ed2b3179e6f00a82",
"node_id": "node_01017fa626b4298b6774d14c137ac5899388581a068ff0e1d324b33b1d4a2e8e41120a",
"kid": "01017fa626b4298b6774d14c137ac5899388581a068ff0e1d324b33b1d4a2e8e41120a",
"device_type": null,
"key_type": 1,
"revoked": false,
"is_eldest": false
},
"node_16292af1ce1dfdb3644ca622eb6e11917925559b9d962dc2ed23e0e9f1101f720f": {
"type": "proof",
"name": "twitter",
"proof_data": {
"name": "twitter",
"username": "_m01"
}
},
"node_23aaf9a2a6767bc749855d36e4c0d198830bf3ddc684c72c150da04301e7b0b80f": {
"type": "proof",
"name": "github",
"proof_data": {
"name": "github",
"username": "m01"
}
},
"node_2382a618351630a2c412914896f537965d7af1aae4cbd74f93e1f91d78c06cbc0f": {
"type": "proof",
"proof_data": {
"domain": "m01.eu",
"protocol": "dns"
}
},
"node_keybase_username": {
"name": "keybase",
"type": "proof",
"proof_data": {
"name": "keybase",
"username": "m01"
}
}
},
"edges": [
[
"node_keybase_username",
"node_01011403d8e3a9164a0c2fc74edb6d376006c4f3ec38722d2db6f335cfc85c8c97d70a"
],
[
"node_01011403d8e3a9164a0c2fc74edb6d376006c4f3ec38722d2db6f335cfc85c8c97d70a",
"node_0120792986fffe9f9045093107d7a6c1299b510c4697870ff3a184a4032225cf7cb20a"
],
[
"node_01011403d8e3a9164a0c2fc74edb6d376006c4f3ec38722d2db6f335cfc85c8c97d70a",
"node_16292af1ce1dfdb3644ca622eb6e11917925559b9d962dc2ed23e0e9f1101f720f"
],
[
"node_01011403d8e3a9164a0c2fc74edb6d376006c4f3ec38722d2db6f335cfc85c8c97d70a",
"node_23aaf9a2a6767bc749855d36e4c0d198830bf3ddc684c72c150da04301e7b0b80f"
],
[
"node_01011403d8e3a9164a0c2fc74edb6d376006c4f3ec38722d2db6f335cfc85c8c97d70a",
"node_2382a618351630a2c412914896f537965d7af1aae4cbd74f93e1f91d78c06cbc0f"
]
]
}
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the empty graph at https://keybase.io/m01/graph and inspect the reported hierarchical-layout error together with window.user_graph. Compare the nodes and edges, especially the new GPG key that appears only in nodes. Done means the profile graph renders correctly after the described key rotation and upload sequence.

Written by the indexing model from the issue text.

Assessment

Domain
frontend, web-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.