Skip to content

fix(voice): let the in-flight tool drain outlast a single tool call [JAR-10169] - #1867

Draft
JoshParkSJ wants to merge 3 commits into
mainfrom
josh/voice-tool-call-timeout-3min-JAR-10169
Draft

fix(voice): let the in-flight tool drain outlast a single tool call [JAR-10169]#1867
JoshParkSJ wants to merge 3 commits into
mainfrom
josh/voice-tool-call-timeout-3min-JAR-10169

Conversation

@JoshParkSJ

@JoshParkSJ JoshParkSJ commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Part 3 of 3 for JAR-10169. Companions: uipath-agents-python#695 (the substantive fix), AgentInterfaces#1163.

Problem

_INFLIGHT_TOOL_DRAIN_AFTER_AGENT_END_TIMEOUT_SECONDS was 30s. Once a voice tool call can run up to 180s (#695), a drain shorter than a single tool call means any session ending mid-tool abandons the in-flight task — the tool never reaches its own timeout, so it never reports.

This was already latent at 60s; raising the tool ceiling to 180s makes it certain.

Change

30s → 190s, just above the tool-call deadline, so the tool hits its own timeout and reports rather than being dropped here.

Trade-off worth flagging: a URT job can now linger up to ~3 minutes after the caller hangs up if a Process tool is still running. That is the cost of allowing 3-minute tools; the alternative is silently dropping results for work Orchestrator is still executing. Cancelling the task would not cancel the Orchestrator job anyway.

Verification

15 passed in packages/uipath/tests/cli/chat/test_voice_bridge.py; ruff check and format clean.

No new test here — the change is a single constant whose effect is a wall-clock cap on a drain, and the meaningful regression coverage lives with the deadline logic in #695.

🤖 Generated with Claude Code

The drain after a voice session ends was capped at 30s while a voice tool
call can now run up to 180s (JAR-10169), so any call ending mid-tool always
abandoned the in-flight task. Raise the cap to 190s, just above the tool
deadline, so the tool reaches its own timeout and reports instead of being
dropped here.

Trade-off: a URT job can now linger up to ~3 minutes after the caller hangs
up if a Process tool is still running.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added test:uipath-langchain Triggers tests in the uipath-langchain-python repository test:uipath-integrations labels Aug 21, 2026
2.14.6 is already published, so check-version-availability fails the PR and
the drain fix never reaches uipath-agents-python. 2.14.7 also stays inside
that repo's uipath>=2.14.4,<2.15.0 range, so a lock refresh picks it up.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The lint job runs `uv sync --locked --all-extras`, which refuses to re-lock,
so pyproject at 2.14.7 against a lock still pinning 2.14.6 failed CI.

Also drop the ticket reference from the drain comment; the constant's
relationship to the tool-call deadline is the part worth keeping in the code.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

🚨 Heads up: uipath-langchain cross-tests are FAILING 🚨

Your changes may break the uipath-langchain-python integration.

⚠️ These checks are NOT enforced by branch protection rules. Please review the failures before merging.

🔍 Inspect the failed run →

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:uipath-integrations test:uipath-langchain Triggers tests in the uipath-langchain-python repository test:uipath-runtime

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant