Summary
When a payment requirement is incompatible for reasons other than wallet presence (e.g., unsupported token or network filter), purl reports a wallet-missing style error, even when a wallet is configured.
How to Reproduce
- Configure a Solana wallet (
purl wallet add, set active).
- Call an endpoint that returns a Solana payment requirement with an unsupported token (e.g. USDT)
- Run:
purl --dry-run <url>.
Actual
Error implies no compatible wallet is configured.
Expected
Error should indicate the true incompatibility reason:
- unsupported token configuration, or
- network filtered out, or
- missing wallet (only when that is the actual cause).
Root Cause
- Negotiator collapsed all incompatibilities into
NoCompatibleMethod without reason metadata.
- Token-support failure (
TokenConfigNotFound) was reduced to a boolean and discarded.
- CLI converted
PurlError to string (anyhow!("{e}")), losing typed error context.
Summary
When a payment requirement is incompatible for reasons other than wallet presence (e.g., unsupported token or network filter), purl reports a wallet-missing style error, even when a wallet is configured.
How to Reproduce
purl wallet add, set active).purl --dry-run <url>.Actual
Error implies no compatible wallet is configured.
Expected
Error should indicate the true incompatibility reason:
Root Cause
NoCompatibleMethodwithout reason metadata.TokenConfigNotFound) was reduced to a boolean and discarded.PurlErrorto string (anyhow!("{e}")), losing typed error context.