{"record":{"id":"2b43c47529c0dad3","repo":"langchain-ai/langgraph","slug":"graph-recursion-limit","errorCode":"GRAPH_RECURSION_LIMIT","errorMessage":"Recursion limit of {config['recursion_limit']} reached without hitting a stop condition. You can increase the limit by setting the `recursion_limit` config key.","messagePattern":"Recursion limit of (.+?) reached without hitting a stop condition\\. You can increase the limit by setting the `recursion_limit` config key\\.","errorType":"exception","errorClass":"GraphRecursionError","httpStatus":null,"severity":"error","filePath":"libs/langgraph/langgraph/pregel/main.py","lineNumber":3011,"sourceCode":"                print_mode,\n                subgraphs,\n                stream.get,\n                queue.Empty,\n                version,\n                _output_mapper,\n                _state_mapper,\n            )\n            # handle exit\n            if loop.status == \"out_of_steps\":\n                msg = create_error_message(\n                    message=(\n                        f\"Recursion limit of {config['recursion_limit']} reached \"\n                        \"without hitting a stop condition. You can increase the \"\n                        \"limit by setting the `recursion_limit` config key.\"\n                    ),\n                    error_code=ErrorCode.GRAPH_RECURSION_LIMIT,\n                )\n                raise GraphRecursionError(msg)\n            elif loop.status == \"draining\":\n                if loop.control is None:\n                    raise RuntimeError(\"Draining status requires run control\")\n                raise GraphDrained(loop.control.drain_reason or \"shutdown\")\n            # set final channel values as run output\n            run_manager.on_chain_end(loop.output)\n        except BaseException as e:\n            if run_manager is not None:\n                run_manager.on_chain_error(e)\n            raise\n\n    @overload\n    def astream(\n        self,\n        input: InputT | Command | None,\n        config: RunnableConfig | None = None,\n        *,\n        context: ContextT | None = None,","sourceCodeStart":2993,"sourceCodeEnd":3029,"githubUrl":"https://github.com/langchain-ai/langgraph/blob/38031739e551638e373fb553453256c23feeb41f/libs/langgraph/langgraph/pregel/main.py#L2993-L3029","documentation":"Error \"Recursion limit of {config['recursion_limit']} reached without hitting a stop condition. You can increase the limit by setting the `recursion_limit` config key.\" thrown in langchain-ai/langgraph.","triggerScenarios":"Thrown at libs/langgraph/langgraph/pregel/main.py:3011 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"38031739e551638e373fb553453256c23feeb41f","analyzedAt":"2026-08-26T18:02:49.312Z","schemaVersion":2},"datasetVersion":"2026-08-26T21:11:00.512Z"}