Problem
When an S3 operation fails, QuiltSync renders the full raw AWS SDK error chain directly in the UI. This includes internal Rust types (ServiceError, HeaderValue, SdkBody, escaped JSON strings, etc.) that are meaningless to end users.
The error message can be several kilobytes of noise that buries the actual failure reason.
Affected code
Cases to handle
Two known concrete cases are documented in comments on this issue.
Proposed fix
- Extract just the AWS error
code and message fields and surface those
- Replace
{0:?} debug formatting on Option<Host> with a human-readable equivalent (e.g. "no catalog" vs the host domain)
- For
InvalidAccessKeyId with host: None (local ~/.aws creds), show a specific message: "Your AWS credentials are invalid. Please update ~/.aws/credentials."
Problem
When an S3 operation fails, QuiltSync renders the full raw AWS SDK error chain directly in the UI. This includes internal Rust types (
ServiceError,HeaderValue,SdkBody, escaped JSON strings, etc.) that are meaningless to end users.The error message can be several kilobytes of noise that buries the actual failure reason.
Affected code
quilt-rs/src/error.rs:207—S3(Option<Host>, S3Error)uses{0:?}debug formatting for the host, printingNoneorSome(Host { inner: ... })verbatimquilt-rs/src/io/remote/s3.rs:59—Error::S3Rawwraps the fullDisplayErrorContextoutputquilt-sync/src/templates/pages/error.html:14— renders{{ err | safe }}with no truncation or formattingCases to handle
Two known concrete cases are documented in comments on this issue.
Proposed fix
codeandmessagefields and surface those{0:?}debug formatting onOption<Host>with a human-readable equivalent (e.g."no catalog"vs the host domain)InvalidAccessKeyIdwithhost: None(local~/.awscreds), show a specific message: "Your AWS credentials are invalid. Please update~/.aws/credentials."