Radish alpha
h
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Radicle Heartwood Protocol & Stack
Radicle
Git
Collect errors for `radicle-fetch` updates
Open fintohaps opened 2 months ago

A user reported errors fetching, with the following output from the CLI:

✗ Error: z6MkrLMMsiPWUcNPHcRajuMi9mDfYckSoJyPwwnknocNYPm7: failed to create reference from refs/namespaces/z6MkwfcG8rNEmYBVd1FAEf827q7s57i2iUSwHTaKPjpAbzQA/refs/heads/patches/6442162615471d46ae30e1ffb6a161bd8f12e0fa to ca2e88ec77681573fe9c46324fb2c9601fba46ca
✗ Error: z6MkupUrQZSELbJrUbcwAZqDhLLDXscmbyrPLyWAdcXGKsu8: failed to create reference from refs/namespaces/z6MkwfcG8rNEmYBVd1FAEf827q7s57i2iUSwHTaKPjpAbzQA/refs/heads/patches/6442162615471d46ae30e1ffb6a161bd8f12e0fa to ca2e88ec77681573fe9c46324fb2c9601fba46ca
✗ Error: z6MkjLnQeLFcgE2AQ3BRMYGr3npNnctcGpABZLEHpmvHdrjX: failed to create reference from refs/namespaces/z6MkwfcG8rNEmYBVd1FAEf827q7s57i2iUSwHTaKPjpAbzQA/refs/heads/patches/6442162615471d46ae30e1ffb6a161bd8f12e0fa to ca2e88ec77681573fe9c46324fb2c9601fba46ca
✗ Error: z6MkfiRENtzUJiU1kxLhxWMWFCiGGxGi6jEbj33Pq9zBVQkK: failed to create reference from refs/namespaces/z6MkwfcG8rNEmYBVd1FAEf827q7s57i2iUSwHTaKPjpAbzQA/refs/heads/patches/6442162615471d46ae30e1ffb6a161bd8f12e0fa to ca2e88ec77681573fe9c46324fb2c9601fba46ca
✗ Error: z6MkrvGK56uumxvwJtfJLxC9L4162ckM8pmfAMcUioaxakjw: failed to create reference from refs/namespaces/z6MkwfcG8rNEmYBVd1FAEf827q7s57i2iUSwHTaKPjpAbzQA/refs/heads/patches/6442162615471d46ae30e1ffb6a161bd8f12e0fa to ca2e88ec77681573fe9c46324fb2c9601fba46ca
✗ Error: z6Mkq9eUruFTBtgqqLAHGR8gmsnC556ftMQsNuNravqYL4Dw: failed to create reference from refs/namespaces/z6MkwfcG8rNEmYBVd1FAEf827q7s57i2iUSwHTaKPjpAbzQA/refs/heads/patches/6442162615471d46ae30e1ffb6a161bd8f12e0fa to ca2e88ec77681573fe9c46324fb2c9601fba46ca

This particular kind of error comes from radicle-fetch, specifically the Update::Create error variant. In turn, this variant is used in git::repository::direct, which is run as part of updating the repository. It would be more durable for this process to still be able to succeed, while collecting errors that would occur.

Looking at the code base, it seems like a solution would be to introduce a new field to Applied, which collects Vec<error::Update>, alongside the existing fields.

We would then have to decide what to do with the errors, with the minimal action being to log them.