lbryio / lbryio/lbry-sdk

Better decode error support for upgraded claims

Open
#2,044 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: claims type: improvement
Dominant language
Python
Stars
7.2k
Forks
493
PR merge metrics
No merged PRs in 30d

Description

## The Issue
Today if you try to resolve a 0.36 URL on 0.34, you'll see something like below. Going forward if we plan on having breaking changes like this, we should show a better message (not sure if we can distinguish between an invalid claim and protobuf upgrade) - something like "Please upgrade your SDK to the latest version to view this content" with a link to the download page.

```
"036pub1": {
"claim": {
"address": "bHj6TZ2NYawprfeF9Bv6TfWGe6eJuG9RWF",
"amount": "0.0001",
"claim_id": "cda25338628bada976a78e7d04367ca075bde397",
"claim_sequence": -1,
"decoded_claim": false,
"depth": 482,
"effective_amount": "0.0001",
"error": "Failed to decode value",
"height": 555691,
"hex": "000acf010a6b0a208480f4a320b4cff22e060fc3691a215bbf11d1e9af580b36861ea425d525b8b31208787878782e6d703418012209766964656f2f6d7034323024c9e193f28c3e8d45ece6046c1dbb6aa8e282e6fbd5c7eeeae41f055fad626f0813581fc987b669e3579981610417b91209303336617574686f721a18416c6c2052696768747320526573657276656420302e33362207746f6d2e636f6d28a6e2f7e5053222080112195536d015a0b0e6fcfad8b9c0a9bada9ecb119f2f6f8b4095701880c2d72f5a0808e00310e802180a420e666972737420302e3336207075624a10302e3336212121215c6e77686f6f7021521d2a1b68747470733a2f2f737065652e63682f342f746f6d2d7a2e6a70675a04746167315a047461673262020801620208286a0c2884e2fe990330c3d3c0a9056a0c1a0a4d616e63686573746572",
"name": "036pub1",
"nout": 0,
"permanent_url": "036pub1#cda25338628bada976a78e7d04367ca075bde397",
"supports": [],
"txid": "57698d19c7729c9f3842343f2995075494d907c41d7fd31e406201096b06dc77",
"value": null
```

## System Configuration

- LBRY Daemon version:
- LBRY App version:
- LBRY Installation ID:
- Operating system:

## Anything Else

## Screenshots

## Internal Use

### Acceptance Criteria
1.
2.
3.

### Definition of Done
- [ ] Tested against acceptance criteria
- [ ] Tested against the assumptions of user story
- [ ] The project builds without errors
- [ ] Unit tests are written and passing
- [ ] Tests on devices/browsers listed in the issue have passed
- [ ] QA performed & issues resolved
- [ ] Refactoring completed
- [ ] Any configuration or build changes documented
- [ ] Documentation updated
- [ ] Peer Code Review performed

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

The issue does not name files or tests. Start by reproducing resolution of a 0.36 URL with the older 0.34 SDK, trace the "Failed to decode value" path, and identify how invalid claims differ from upgraded protobuf data; done means the appropriate case shows an upgrade message with a download link and has regression coverage.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, blockchain
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.