Fix: Riverpod 3.0 throws ProviderException instead of the original error
Riverpod 3.0 wraps errors thrown while reading a provider in a ProviderException. Catch that type and read e.exception to get your original error back, or use AsyncValue.error which is unwrapped.