fix: prevent API client provider auto-dispose causing Ref invalidation
API client providers (coreApiClientProvider, tatlockApiClientProvider) now use keepAlive: true. This fixes "DioException [unknown]: null" errors on pages like /security/users where ref.read() was used without subscription. The AuthInterceptor stores a Ref that became invalid when the provider auto-disposed after a one-time read. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.5
parent
c374ecbffb
commit
34fdc77818
@@ -9,7 +9,10 @@ import 'api_client_native.dart' if (dart.library.html) 'api_client_web.dart'
|
||||
part 'api_client.g.dart';
|
||||
|
||||
/// Provides the Dio instance for Core API.
|
||||
@riverpod
|
||||
///
|
||||
/// Uses keepAlive to prevent auto-dispose - the AuthInterceptor stores
|
||||
/// a Ref that must remain valid for the lifetime of API requests.
|
||||
@Riverpod(keepAlive: true)
|
||||
Dio coreApiClient(Ref ref) {
|
||||
final options = BaseOptions(
|
||||
baseUrl: AppConfig.coreApiUrl,
|
||||
@@ -33,7 +36,10 @@ Dio coreApiClient(Ref ref) {
|
||||
}
|
||||
|
||||
/// Provides the Dio instance for Tatlock API.
|
||||
@riverpod
|
||||
///
|
||||
/// Uses keepAlive to prevent auto-dispose - the AuthInterceptor stores
|
||||
/// a Ref that must remain valid for the lifetime of API requests.
|
||||
@Riverpod(keepAlive: true)
|
||||
Dio tatlockApiClient(Ref ref) {
|
||||
final options = BaseOptions(
|
||||
baseUrl: AppConfig.tatlockApiUrl,
|
||||
|
||||
Reference in New Issue
Block a user