dfinity / dfinity/candid

As a user, I want to see more context for deserialization errors so that debugging is faster

Open
#122 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Rust
Stars
301
Forks
85
Avg merge
1h 4m
Merged PRs (30d)
4

Description

Is your feature request related to a problem? Please describe.
An example candid deserialization error message is:
"No more values to deserialize".
That can be hard to debug: what I want to know is:

  • The full context -- that is the full sequence of bytes that were being deserialized.
  • Why was a value expected? In other words, what part of the candid type is missing?

Describe the solution you'd like
I'd like something like:
"No more value to deserialize. While trying to deserialize into a , the end of the byte stream was reached, but a was expected."

Describe alternatives you've considered
I have none.

Additional context

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 names no files, tests, or entry points. Start by locating the deserialization error path and determine how the byte sequence and expected Candid type are represented there. Done means errors include the relevant byte-stream context and the missing expected value or type.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.