edgedb-rust icon indicating copy to clipboard operation
edgedb-rust copied to clipboard

Error messages should provide better context

Open XAMPPRocky opened this issue 1 year ago • 1 comments

Edgedb's error messages can be quite unintuitive about what is needed to fix the error, what the error is, and it should include more information about the invalid query, and the errors should provide more actionable information for the user.

Some generic information that would be useful for all errors.

  • The query
  • The line and column of the error in the code (not the query).
  • Highlighting the line and column in the error.

Examples of unituitive errors:

This error is something to do with not referencing any inner property in a link property.

index out of bounds: the len is 1 but the index is 1

This error is caused when you're missing a field OR the field list in the query doesn't match the order of the Queryable struct, which is incredibly user-hostile, because you're only going to realise that's the problem through trial and error.

DescriptorMismatch

Caused by:
    unexpected field id, expected name

References the query instead of the code.

InvalidReferenceError: object type 'default::PendingSaga' has no link or property 'name' (on line 1, column 26)

XAMPPRocky avatar Oct 12 '23 12:10 XAMPPRocky

Yeah I found it's very hard to understand what's goind wrong. Just placing #[tracing::instrument(err, skip_all)] before fn encode(&self, buf: &mut BytesMut, val: &Value) helped tremendously understand what's going on. I can add PR with this annotations on most major functions, what do you think? @raddevon

MrFoxPro avatar Mar 12 '24 13:03 MrFoxPro