How can I globally manage errors in tRPC ? Trying `redirect` in custom link does not seem to work
I want to be able to redirect a user when they become unauthenticated. Someone else mentioned to create some NextJS middleware which makes an API call for the user but then that will make an extra API call for every tRPC request. It feels like there should be someway I can centrally manage errors where if tRPC returns an 'UNAUTHORIZED' error for any procedure I can do a redirect to '/login'
I have a monorepo with everything together but the apps will be deployed separately eventually.
I've tested this custom link before the
httpLink
but the redirect does not seem to ever run. The console logs as expected.
Is it something to do with the error still being thrown ?2 Replies
I guess you would need to change the client side of TRPC to handle these error.
Using this logic, you probably will change the QueryClient that TRPC is using.
I made it work this way, but i think still adjustments because of the delay:
In other words, you can tweak react query to do something with global callbacks.
I guess this is somewhat dangerous, because it's called for EVERY query or mutation.
I also made some type narrowing, but i couldn't find a way to narrow err to TRPCClientError<AppRouter> instead of just TRPCClientError without a reassign.
Thanks for taking the time to respond, in my case I am using app directory with a separated backend, but still within a monorepo. So I am not actually using react query