RecursionError: maximum recursion depth exceeded
This error matches known, documented patterns with reliable solutions.
Quick Fix (Most Common Solution)
- Add proper base case
- Convert to iterative solution
Seeing "RecursionError: maximum recursion depth exceeded"? This error can be frustrating, but it's usually fixable. It typically affects your development workflow or system. Below you'll find clear, step-by-step solutions to resolve this issue.
What This Error Means
Your recursive function called itself too many times without a base case.
Frequently documented in developer and vendor support forums.
Not affiliated with browser, OS, or device manufacturers.
New here? Learn why exact error messages matter →
Common Causes
- Missing or incorrect base case
- Infinite recursion
- Very deep valid recursion
How to Fix
- Add proper base case
- Convert to iterative solution
- Increase limit with sys.setrecursionlimit()
Last reviewed: April 2026 How we review solutions
Edge Cases
Python's 1000-Frame Default Limit and When to Convert to Iteration
sys.setrecursionlimit(5000) raises the limit, but this should be paired with threading.stack_size(67108864) (64 MB) to avoid an actual OS-level stack overflow at high limits. A cleaner long-term fix is converting recursive algorithms to iterative ones using an explicit stack — a Python list or collections.deque used as a LIFO stack: push child nodes, pop and process, repeat. This pattern processes arbitrarily deep trees without hitting any recursion limit and typically runs faster due to reduced function call overhead.
functools.lru_cache on memoized recursive functions can reduce effective call depth when the same subproblems recur (dynamic programming patterns), but it does not help for tree traversal where all nodes are unique. For graph algorithms, explicitly tracking visited nodes with a set prevents infinite recursion from cycles.Optional follow-up
Some users ask whether saving fixes for recurring errors would be useful when the same issue appears again.
Was this explanation helpful?
Frequently Asked Questions
What is the default recursion limit?
Usually 1000 in Python. Check with sys.getrecursionlimit().
Is increasing limit safe?
Can cause stack overflow. Better to use iteration.
Related Resources
Also Known As
- Python exception
- Python traceback
- Python runtime error
- Python crash
Common Search Variations
- "python error fix"
- "python script not working"
- "python traceback what does it mean"
- "how to fix python exception"
- "python crash on startup"
- "python import error solution"
Related Errors
Still Stuck?
Paste a different error message or upload a screenshot to get help instantly.