Two-layer timeout enforcement for Salesforce MCP (session-layer 300s read backstop + tool-layer 120s asyncio.wait_for on sf_describe_report_type) — supersedes journal entry 8fa7e2a6 with calibrated co
Decision
Two-layer timeout enforcement for Salesforce MCP (session-layer 300s read backstop + tool-layer 120s asyncio.wait_for on sf_describe_report_type) — supersedes journal entry 8fa7e2a6 with calibrated confidence.
Rationale
EA-reported hang on sf_describe_report_type(report_type_key=Booking_With_or_W_o_Loan__c, org_alias=production). Root cause: RefreshingSalesforceSession.request() never passed timeout= to underlying requests call, defaulting to None (infinite). Affected all 684 tools, not just describe_report_type — surfaced first on heavy custom report type stalling Analytics API past 2 min. Chose two-layer over narrow-only or broad-only: narrow alone leaves 683 siblings exposed; broad alone gives 300s read backstop too generous for interactive describe reads. Defense-in-depth, overridable per-call for bulk/deploy. Same-tag v7.1.1 patch (behavior-only, no API surface change). Verified live: rebuild + restart, health green, drift-check clean, mirror parity OK, docker exec confirmed both fixes in running image.
Alternatives Rejected
Outcome
Pending
Related
- fix-sfdescribereporttype-hang-via-two-layer-timeout-enforcem
- ship-tableau-mcp-v605-6-metadataget-graphql-drift-fixes-via
- resolve-6-metadataget-graphql-drifts-in-tableau-mcp-by-repla
- snowflake-mcp-v2204-v2205-patch-landed-3-source-fixes-impl-w
- snowflake-mcp-v2203-upgrade-quality-audit-full-pass-bible-v1
- two-layer-salesforce-mcp-timeout-enforcement-final-session-l
- mcp-tool-hangs-claude-session-asynciotothreadblockingio-with
- close-session-close-ceremony-for-2026-05-11-salesforce-mcp-t
- functional-verification-of-pre-record-decision-gatepy-counts
- rewrote-file-manager-filesarjtechin-dlarjtechin-archive-down