!Missing or incorrect base case — causes infinite recursion and stack overflow.
!Returning the wrong value from the recursive case — each call must return a meaningful result.
!Not memoizing overlapping subproblems — leads to exponential time complexity (e.g., naive Fibonacci).
!Mutating shared state inside recursion without restoring it — causes incorrect results in backtracking variants.