Suspense & Error Boundaries in React
From the TanStack Query cheat sheet · Advanced Patterns · verified Jul 2026
Suspense & Error Boundaries
Using React Suspense with TanStack Query
typescript
import { useSuspenseQuery } from '@tanstack/react-query'
import { Suspense } from 'react'
import { ErrorBoundary } from 'react-error-boundary'
// Using suspense query
function Profile({ userId }) {
// This will suspend
const { data } = useSuspenseQuery({
queryKey: ['profile', userId],
queryFn: () => fetchProfile(userId)
})
// Data is guaranteed to be defined
return <div>{data.name}</div>
}
// App with Suspense and Error Boundary
function App() {
return (
<ErrorBoundary fallback={<div>Something went wrong</div>}>
<Suspense fallback={<div>Loading...</div>}>
<Profile userId={1} />
</Suspense>
</ErrorBoundary>
)
}💡 useSuspenseQuery guarantees data is always defined
⚡ Combine with ErrorBoundary for complete error handling
📌 QueryErrorResetBoundary resets queries on error recovery
🟢 Great for SSR and concurrent features
suspenseerror-boundaryadvanced