Remove OperationFailed from the CursorInvalidatedError category

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Catalog and Routing
    • ALL
    • CAR Team 2026-08-31, CAR Team 2026-09-14
    • 🟥 DDL, 🟩 Routing and Topology
    • None
    • None
    • None
    • None
    • None
    • None

      Back in SERVER-52693, we created the CursorInvalidatedError category and included OperationFailed among the errors in this category.

      The set of errors was taken from this concurrency workload.

      This is incorrect: OperationFailed signals to the caller that a definitive, non-transient error occurred and the operation failed. Simply retrying the operation will not resolve the underlying problem.

      Today, Shard::RetryPolicy::kIdempotentOrCursorInvalidated retries CursorInvalidatedError errors for internally executed commands. In addition, ShardingCoordinator::_isRetriableErrorForDDLCoordinator() considers CursorInvalidatedError retriable.

      The risk is that a command or function that failed with a non-transient error will be retried indefinitely. For coordinators, this could mean retrying while inside the critical section and stalling CRUD operations.

      Remove OperationFailed from the CursorInvalidatedError category.

            Assignee:
            Tommaso Tocci
            Reporter:
            Tommaso Tocci
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: