Why does flutter dio interceptor not invoking the method?
I think the problem is in your Interceptor:
dio.interceptors.add(InterceptorsWrapper(onError: (error) async { print(error.response); if (error.response?.statusCode == 403 || error.response?.statusCode == 401) { await refreshToken(jwt); _retry(error.request, dio); } return error.response; }));
You're calling retry method, but:
- you don't wait for result;
- you return an error anyway.
Try to add return
before _retry
instead:
dio.interceptors.add(InterceptorsWrapper(onError: (error) async { print(error.response); if (error.response?.statusCode == 403 || error.response?.statusCode == 401) { await refreshToken(jwt); return _retry(error.request, dio); } return error.response; }));