fix: include task in next if it has pending interrupt even with writes#6960
Open
yz (iCanDoAllThingszz) wants to merge 1 commit intolangchain-ai:mainfrom
Open
fix: include task in next if it has pending interrupt even with writes#6960yz (iCanDoAllThingszz) wants to merge 1 commit intolangchain-ai:mainfrom
yz (iCanDoAllThingszz) wants to merge 1 commit intolangchain-ai:mainfrom
Conversation
When a node calls interrupt() twice, after resuming from the first interrupt and hitting the second, get_state().next incorrectly returns empty tuple even though the graph is still waiting for user input. This happens because the RESUME pending write gets added to task.writes, which causes the task to be excluded from next (since the logic checks ). However, if the task also has a pending interrupt, it should still be included in next. This fix adds a check for pending interrupts: if a task has writes but also has a pending interrupt, it should still be included in next because the graph is waiting for user input. Fixes langchain-ai#6956
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
When a node calls
interrupt()twice, after resuming from the first interrupt and hitting the second,get_state().nextincorrectly returns an empty tuple even though the graph is still waiting for user input.This happens because the RESUME pending write gets added to
task.writes, which causes the task to be excluded fromnext(since the logic checksif not t.writes). However, if the task also has a pending interrupt, it should still be included innext.Fix
This fix adds a check for pending interrupts: if a task has writes but also has a pending interrupt, it should still be included in
nextbecause the graph is waiting for user input.Related Issue
Fixes #6956
Testing
Tested with the reproduction case from the issue:
Checklist
make formatandmake lint