Lingua-e
Python

What is a RecursionError?

← Errors

A RecursionError is raised in Python when a recursive function exceeds the maximum call stack depth, which defaults to 1000 frames. Python tracks each function call on the stack, and when that limit is hit the interpreter stops execution to prevent a stack overflow.

Why it happens

  • A recursive function is missing its base case, causing infinite recursion.
  • The base case exists but the input never reaches it due to a logic error.
  • Legitimate deep recursion on large inputs that genuinely exceeds the default limit.
  • Mutually recursive functions that call each other in a cycle without terminating.

Examples

Python

Code that triggers the error

def factorial(n):
    return n * factorial(n - 1)  # missing base case

print(factorial(5))

Error output

Traceback (most recent call last):
  File "app.py", line 4, in <module>
    print(factorial(5))
  File "app.py", line 2, in factorial
    return n * factorial(n - 1)
  [Previous line repeated 996 more times]
RecursionError: maximum recursion depth exceeded

How to fix it

Add or fix the base case so every recursive call moves closer to termination. For large inputs, convert the algorithm to an iterative loop. If deep recursion is genuinely required, you can temporarily increase the limit with sys.setrecursionlimit(), but this is a last resort.

Fixed code

def factorial(n):
    if n <= 1:          # base case stops the recursion
        return 1
    return n * factorial(n - 1)

print(factorial(5))  # 120

Related errors

Ready to practice your English at work?

Lingua-e has interactive exercises built around real developer conversations: standups, code reviews, retrospectives, and more. Practice until it comes naturally.

Try Lingua-e for free