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

More React tasks

Back to the full TanStack Query cheat sheet