Fix MissingGreenlet in invite_members and assign_users_to_task
Both endpoints accessed ORM object IDs after db.commit(), which expires all loaded objects in async SQLAlchemy. Added db.flush() before commit to assign IDs while objects are still live. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
a7e93aa2a3
commit
f0850ad3bf
@ -600,13 +600,13 @@ async def invite_members(
|
|||||||
source_type="project_member",
|
source_type="project_member",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
await db.flush() # Assign IDs before commit (ORM objects expire after commit)
|
||||||
|
member_ids = [m.id for m in created_members]
|
||||||
await db.commit()
|
await db.commit()
|
||||||
|
|
||||||
# Re-fetch with relationships
|
# Re-fetch with relationships
|
||||||
if not created_members:
|
if not created_members:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
member_ids = [m.id for m in created_members]
|
|
||||||
result = await db.execute(
|
result = await db.execute(
|
||||||
select(ProjectMember)
|
select(ProjectMember)
|
||||||
.options(
|
.options(
|
||||||
@ -876,13 +876,14 @@ async def assign_users_to_task(
|
|||||||
source_type="task_assignment",
|
source_type="task_assignment",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
await db.flush() # Assign IDs before commit (ORM objects expire after commit)
|
||||||
|
assignment_ids = [a.id for a in created]
|
||||||
await db.commit()
|
await db.commit()
|
||||||
|
|
||||||
if not created:
|
if not created:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
# Re-fetch with user info
|
# Re-fetch with user info
|
||||||
assignment_ids = [a.id for a in created]
|
|
||||||
result = await db.execute(
|
result = await db.execute(
|
||||||
select(ProjectTaskAssignment)
|
select(ProjectTaskAssignment)
|
||||||
.options(selectinload(ProjectTaskAssignment.user))
|
.options(selectinload(ProjectTaskAssignment.user))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user